如何在javascript中删除数组对象项?

时间:2013-07-01 09:56:21

标签: javascript node.js

这是我的代码

var array = [{ id: 1,  name: 'test' }, { id: 2,  name: 'test2' }];

我需要将上面的数组改为如下所示

[{ name: 'test' }, { name: 'test2' }]

我尝试删除

array.forEach(function(arr, i) {
    delete array[i].id;
});
console.log(array);

输出为

[ { id: 1, name: 'test' },
  { id: 2,  name: 'test2'} ]

但它不会删除id项。如何删除数组对象项?

我在节点 v0.8 中使用它。

3 个答案:

答案 0 :(得分:2)

删除id属性 ,可以通过以下方式证明:

for (var l in array[0]) {
    if (array[0].hasOwnProperty(l)) {
        console.log(array[0][l]);
    }
}

请参阅jsFiddle

node.js输出的屏幕截图:

screenshot http://testbed.nicon.nl/dump/nodejsdelx.png

答案 1 :(得分:0)

嗯,这是你的jQuery 1.9.1代码,它运行良好:http://jsfiddle.net/8GVQ9/

var array = [{ id: 1,  name: 'test' }, { id: 2,  name: 'test2' }];
array.forEach(function(arr, i) {
    delete array[i].id;
});
console.log(array);

顺便说一句,你想从数组中的对象中删除'property'Id-更好地理解你。

答案 2 :(得分:0)

你必须解析数组并构建新版本然后替换它。

var array = [{ id: 1,  name: 'test' }, { id: 2,  name: 'test2' }];    
var tempArray = []; 
    for(var i = 0; i < array.length; i++)
    {
        tempArray.push({name : array[i].name});
    }
    array = tempArray;