删除数组中所有对象的属性
我想bad
从数组中的每个对象中删除该属性。有没有比使用for
循环并从每个对象中删除它更好的方法了?
var array = [{"bad": "something", "good":"something"},{"bad":"something", "good":"something"},...];for (var i = 0, len = array.length; i < len; i++) {
delete array[i].bad;
}
似乎应该有一种使用方式prototype
,或其他方式。我不知道。有想法吗?
回答:
唯一的其他方法是修饰,实际上是循环。
例如 :
array.forEach(function(v){ delete v.bad });
笔记:
- 如果要与IE8兼容,则需要forEach的垫片。正如您提到prototype一样,prototype.js也有一个shim。
delete
是最糟糕的“优化杀手”之一。使用它经常会破坏应用程序的性能。如果您要真正删除属性,则无法避免,但是通常可以将属性设置为,undefined
或者仅构建不带属性的新对象。
以上是 删除数组中所有对象的属性 的全部内容, 来源链接: utcz.com/qa/422216.html