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...]; |
我添加了
您可以使用"删除"删除它
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; } |
如果使用
1 2 3 | b = b.map(function(obj) { return {data: obj.data, width: obj.width}; }); |
如果您碰巧有引用,那么我唯一能想到的方法就是使用
1 2 3 | for(var obj of b) { delete obj.color; } |