删除Javascript中的属性

删除Javascript中的属性,javascript,Javascript,我有以下目标 b.push({ data: d, width: 5, color: color }); 那我有 b= [{data:10,width:5, color:"yellow"},{data:12,width:5, color:"red"},etc...]; 我添加了color属性,现在我不需要,我想删除它。我想知道最简单的方法是什么?您可以使用delete删除它 delete b[0].color 如果您使用的是.push({})和推送对象文字,并且没有任何其他方式引用这些对象,

我有以下目标

b.push({ data: d, width: 5, color: color });
那我有

b= [{data:10,width:5, color:"yellow"},{data:12,width:5, color:"red"},etc...];

我添加了
color
属性,现在我不需要,我想删除它。我想知道最简单的方法是什么?

您可以使用delete删除它

delete b[0].color

如果您使用的是
.push({})
和推送对象文字,并且没有任何其他方式引用这些对象,只需使用map:

b = b.map(function(obj) {
  return {data: obj.data, width: obj.width};
});
如果您碰巧有参考资料,那么我真正能想到的唯一方法就是使用
delete
关键字,尽管我不推荐:

for(var obj of b) {
  delete obj.color;
}

您可以编写一个函数来查找具有属性且该属性具有要删除的目标值的所有对象\

这个程序非常简单。如果缺少概念,请添加注释

/*将控制台输出重定向到HTML。*/document.body.innerHTML='';
console.log=function(){document.body.innerHTML+=[].slice.apply(参数).join(“”)+'\n';};
变量b=[{
数据:“红色”,
宽度:1,
颜色:“#FF0000”
}, {
数据:“蓝色”,
宽度:1,
颜色:“#00FF00”
}, {
数据:“绿色”,
宽度:1,
颜色:“#0000FF”
}];
函数removeProperty(项、键、值、propToRemove){
items.forEach(功能(项目){
if(item!=null&&item[key]==value){
删除项目[propToRemove];
}
});
}
//删除提供的数据匹配项的“颜色”属性。
removeProperty(b,‘数据’、‘蓝色’、‘颜色’);
log(JSON.stringify(b,null,')

body{font-family:monospace;white-space:pre;font-size:11px;}
Bu我在b中推送了一个对象数组。@ilyasUyanik:所以使用循环…?提供一个更好的数据集@ilyasUyanik…@ilyasUyanik:没有。使用forEach或for循环。@ilyasUyanik:循环是处理项目列表的内置方法。您需要首先。然后,你可以
从中删除
color
。我更喜欢一个正常的
for
循环来迭代数组。这取决于你是否试图支持
IE
,那么也许吧,但是我会使用
的现代浏览器,不管你信不信,我错过了
for
循环,并且认为这是
for/in
循环。我同意,在未来,
for/of
可能是一条路要走(尽管我认为它不能达到
for
循环的性能)。@FelixKling你知道
for of
是新的,它是
ES6
的一部分,而不仅仅是用于阵列。它适用于任何可编辑的内容,
数组
字符串
映射
设置
任何带有
[Symbol.iterator]
正确实现的内容。V8优化了
还有一些消息我不记得现在哪里有一篇文章
的(var I=0;I
和(var I=0,l=arr.length;I
速度一样快。为什么
位?这样就不能匹配错误的值。事实上,为什么首先要测试,我认为OP想要从所有对象中移除道具。它测试对象是否具有该属性。它类似于item.hasOwnProperty('key')。类似,但不相同。一开始有它的理由是什么?