使用 JavaScript 添加数组对象

add array object with JavaScript

本文关键字:对象 数组 添加 JavaScript 使用      更新时间:2023-09-26

可能是愚蠢的问题。我有数组对象,例如

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"
        }
    ];

长度 3

我想在所有对象中添加 id,例如

        {
            id:1
            value: "jquery",
            label: "jQuery",
            desc: "the write less, do more, JavaScript library",
            icon: "jquery_32x32.png"
        },
        {
            id:2
            value: "jquery-ui",
            label: "jQuery UI",
            desc: "the official user interface library for jQuery",
            icon: "jqueryui_32x32.png"
        },
        {
            id:3
            value: "sizzlejs",
            label: "Sizzle JS",
            desc: "a pure-JavaScript CSS selector engine",
            icon: "sizzlejs_32x32.png"
        }

我该怎么做?

你可以

通过使用Array.prototype.map()来做到这一点,

projects = projects.map(function(itm,i){
 return (itm.id = i+1, itm);
});

演示

如果你不想使用函数式编程,那么你可以使用一个简单的 for 循环来实现这个目的,不需要"forEach",

for(var i=0,len=projects.length; i<len; i++){
  projects[i].id = i+1;
}

不需要 Array#map,因为可以通过itm作为对象直接访问。

projects.forEach(function(itm, i) {
   itm.id = i + 1;
});

如果关心速度( ..."快速"解决方案与"负">while循环:

var len = projects.length;
while (len--) {
    projects[len]['id'] = len + 1;
}