Remove property in Javascript

Remove property in Javascript

本问题已经有最佳答案,请猛点这里访问。

我有以下物品

1
b.push({ data: d, width: 5, color: color });

然后我有

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

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


您可以使用"删除"删除它

1
delete b[0].color


您可以编写一个函数来查找所有对象,这些对象都有一个属性,并且该属性有一个要删除的目标值。

这个节目很自然。如果缺少概念,请添加注释。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/* Redirect console output to HTML. */ document.body.innerHTML = '';
console.log=function(){document.body.innerHTML+=[].slice.apply(arguments).join(' ')+'
'
;};

var b = [{
  data: 'Red',
  width: 1,
  color: '#FF0000'
}, {
  data: 'Blue',
  width : 1,
  color: '#00FF00'
}, {
  data: 'Green',
  width: 1,
  color: '#0000FF'
}];

function removeProperty(items, key, value, propToRemove) {
  items.forEach(function(item) {
    if (item != null && item[key] === value) {
      delete item[propToRemove];
    }
  });
}

// delete the 'color' property of the provided data matches.
removeProperty(b, 'data', 'Blue', 'color');

console.log(JSON.stringify(b, null, '  '));
1
body { font-family: monospace; white-space: pre; font-size: 11px; }


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

1
2
3
b = b.map(function(obj) {
  return {data: obj.data, width: obj.width};
});

如果您碰巧有引用,那么我唯一能想到的方法就是使用delete关键字,即使我不推荐它:

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