我想从数组中的每个对象中删除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;
}
似乎应该有一种方法来使用原型
或其他东西。我不知道。想法?
我更喜欢使用map删除属性,然后返回新的数组项。
array.map(function(item) {
delete item.bad;
return item;
});
唯一的其他方法是装饰性的,实际上是循环。
例如:
array.forEach(function(v){ delete v.bad });
注意事项:
delete
是最糟糕的“优化杀手”之一。使用它通常会破坏应用程序的性能。如果确实要删除某个属性,则无法避免此操作,但通常可以将该属性设置为未定义
,或者只构建没有该属性的新对象
使用ES6,您可以解构每个对象以创建没有命名属性的新对象:
const newArray = array.map(({dropAttr1, dropAttr2, ...keepAttrs}) => keepAttrs)
问题内容: 我想从数组中的每个对象中删除该属性。有没有比使用循环并从每个对象中删除它更好的方法了? 似乎应该有一种使用方式,或其他方式。我不知道。有想法吗? 问题答案: 唯一的其他方法是修饰,实际上是循环。 例如 : 笔记: 如果要与IE8兼容,则需要forEach的垫片。正如您提到prototype一样,prototype.js也有一个shim。 是最糟糕的“优化杀手”之一。使用它经常会破坏应用
问题内容: 我有一个要在Python中清理的JSON数组。我要删除该属性: data.json 我正在设置列表理解以删除该属性,但是我不确定如何创建关注以下内容的变量: 当我理解列表时,它返回一个空数组。我必须纠正什么才能使其正常工作? 问题答案: 解决您的问题的一种简单方法是使用以下方法删除不需要的密钥: 您应该添加一些安全检查,但是您知道了。
如何根据属性值从数组中删除所有对象? 在上面的代码中,它只删除一个对象。如何删除所有if匹配项?
问题内容: 如何通过匹配对象属性从数组中删除对象? 请只使用本机JavaScript。 我在使用接头时遇到麻烦,因为每次删除的长度都会减少。使用克隆并在原始索引上进行拼接仍然会给您带来长度减少的问题。 问题答案: 我以为你用过这样的东西? 修复bug所需要做的就是在下一次减少,然后(也可以选择向后循环): 为了避免线性时间删除,可以编写要 保留 在数组上的数组元素: 为了避免在现代运行时中进行线性
} 现在,我的要求是当我单击“删除列”时,它会进入此方法,并且我想删除与之关联的特定列和行。 提前谢谢你的帮助。
问题内容: 我创建了许多对象,然后将它们存储在列表中。但是我想在一段时间后删除它们,因为我创建了一个新闻,并且不希望我的内存过高(就我而言,如果不删除它,它会跳到20 gigs的内存)。 这里有一些代码来说明我要做什么: A和B是我的对象。C是这两个对象的列表。我正在尝试使用C中的for循环将其删除:一次是使用DEL,另一次是使用一个函数。它似乎不起作用,因为打印继续显示对象。 我需要这个,因为我