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

如何删除javascript中的数组对象项?,javascript,node.js,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' }, {

这是我的密码

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

中使用此属性时,
id
属性被删除,如下所示:

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

node.js
输出截图:



(来源:)

Hm,这是您使用jQuery 1.9.1的代码,它运行良好:


顺便说一句,您想从数组中的对象中删除“property”Id,这样更便于理解。

您必须解析数组并生成新版本,然后替换它

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;
var数组=[{id:1,名称:'test'},{id:2,名称:'test2'}];
var tempArray=[];
对于(var i=0;i
似乎工作正常:(?)在FF和Chrome中进行了测试。在我的控制台中没有id。它在firebug中似乎工作正常。@Ken AbdiasSoftware它不在客户端,而是在节点v0.8的服务器端。我在上面的节点
v0.8.14
中测试了您的确切代码,我看到了正确的行为,即id元素消失了。如果我问的是显而易见的问题,很抱歉,但是代码是否高于您实际运行的代码?我刚刚在节点0.10.12命令行上尝试了您的代码,我从
console.log(array)
,即
[{name:'test'},{name:'test2'}]
获得了您所需的输出。如果本机数组对象的行为在这两个版本之间发生了更改,我会感到惊讶。我正在节点中使用此选项,其中
id
未删除。请参见节点输出的屏幕截图。这意味着什么?我没有得到你……:)代码后面是一个循环,用于检查通过node.exe解释器运行的
数组
变量的第一个对象的属性。顶部显示代码,底部显示结果的一半。它只显示
test
,这是
array[0]
所包含的对象的唯一(自有)属性的值,因此
id
属性被删除。谢谢,您是对的。我不知道删除后它是如何返回id的。我刚开始使用fresh copy,它今天的效果非常好…我正在寻找不使用外部临时阵列的解决方案。我正在节点为v0.8的服务器中使用它,其中id没有删除。
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;