如何删除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;