JavaScript または jQuery を使用して配列内にあるオブジェクトの値を変更するにはどうすればよいでしょうか? 質問する

JavaScript または jQuery を使用して配列内にあるオブジェクトの値を変更するにはどうすればよいでしょうか? 質問する

以下のコードは jQuery UI Autocomplete から取得したものです。

var projects = [
    {
        value: "jquery",
        label: "jQuery",
        desc: "the write less, do more, JavaScript library",
        icon: "jquery_32x32.png"
    },
    {
        value: "jquery-ui",
        label: "jQuery UI",
        desc: "the official user interface library for jQuery",
        icon: "jqueryui_32x32.png"
    },
    {
        value: "sizzlejs",
        label: "Sizzle JS",
        desc: "a pure-JavaScript CSS selector engine",
        icon: "sizzlejs_32x32.png"
    }
];

たとえば、jquery-ui の desc 値を変更したいのですが、どうすればいいでしょうか?

さらに、データを取得するより速い方法はありますか?つまり、配列内のオブジェクトと同じように、オブジェクトに名前を付けてデータを取得するということですか?つまり、次のようなものになります。jquery-ui.jquery-ui.desc = ....

ベストアンサー1

それはとても簡単です

  • メソッドを使用してオブジェクトのインデックスを見つけますfindIndex
  • インデックスを変数に格納します。
  • 次のような簡単な更新を実行します。yourArray[indexThatyouFind]

//Initailize array of objects.
let myArray = [
  {id: 0, name: "Jhon"},
  {id: 1, name: "Sara"},
  {id: 2, name: "Domnic"},
  {id: 3, name: "Bravo"}
],
    
//Find index of specific object using findIndex method.    
objIndex = myArray.findIndex(obj => obj.id == 1);

//Log object to Console.
console.log("Before update: ", myArray[objIndex])

//Update object's name property.
myArray[objIndex].name = "Laila"

//Log object to console again.
console.log("After update: ", myArray[objIndex])

おすすめ記事