小编典典

如何使用 JavaScript 或 jQuery 更改数组内的对象的值?

all

下面的代码来自 jQuery UI 自动完成:

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 = ....


阅读 126

收藏
2022-04-06

共1个答案

小编典典

您必须在数组中搜索,例如:

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' );

更新:

为了更快地获得它:

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

projects.jqueryUi.desc = 'new string';

(根据 Frédéric 的评论,你不应该在对象键中使用连字符,或者你应该使用 “jquery-ui” 和 projects[“jquery-ui”]
表示法。)

2022-04-06