小编典典

删除数组中所有对象的属性

all

我想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,或者其他东西。我不知道。想法?


阅读 62

收藏
2022-08-02

共1个答案

小编典典

唯一的其他方式是装饰性的,实际上是循环。

例如 :

array.forEach(function(v){ delete v.bad });

笔记:

  • 如果你想与 IE8 兼容,你需要一个用于 forEach 的 shim。正如您提到的原型,prototype.js 也有一个 shim
  • delete是最糟糕的“优化杀手”之一。使用它通常会破坏应用程序的性能。如果您想真正删除某个属性,则无法避免它,但您通常可以将属性设置为undefined或只构建没有该属性的新对象。
2022-08-02