1. ホーム
  2. ジャバスクリプト

[解決済み]JavaScriptまたはjQueryを使用して配列内のオブジェクトの値を変更するには?

2022-04-18 13:02:59

質問

以下のコードは、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 = ....

どのように解決するのですか?

のように配列で検索する必要があります。

function changeDesc( value, desc ) {
   for (var i in projects) {
     if (projects[i].value == value) {
        projects[i].desc = desc;
        break; //Stop this loop, we found it!
     }
   }
}

のように使用します。

var projects = [ ... ];
changeDesc ( 'jquery-ui', 'new description' );

UPDATE

より早く手に入れるために

var projects = {
   jqueryUi : {
      value:  'lol1',
      desc:   'lol2'
   }
};

projects.jqueryUi.desc = 'new string';

(Frédéricのコメントによると、オブジェクトキーにハイフンを使わないか、"jquery-ui" や projects["jquery-ui"] 記法を使用する必要があります)。