我有一个这种格式的数据集:
{
roof: 'black',
door: 'white',
windows: 8
},
{
roof: 'red',
door: 'green',
windows: 2
},
{
roof: 'black',
door: 'green',
windows: 8
}
我想删除 roof: 'black'
、door: 'green'
和 windows: 2
的每个键/值对, 来自每个对象。我所做的如下:
if (object.roof == 'black'){
delete object.roof;
}
if (object.windows == 2){
delete object.windows;
}
if (object.door == 'green'){
delete object.door;
}
但是感觉有点丑。有没有其他更好的方法来实现这一点?
最佳答案
您可以为键值/对获取一个对象,并通过先前的检查删除属性。
var array = [{ roof: 'black', door: 'white', windows: 8 }, { roof: 'red', door: 'green', windows: 2 }, { roof: 'black', door: 'green', windows: 8 }],
remove = { roof: 'black', windows: 2, door: 'green' };
array.forEach(o =>
Object.entries(remove).forEach(([k, v]) =>
o[k] === v && Reflect.deleteProperty(o, k)));
console.log(array);
.as-console-wrapper { max-height: 100% !important; top: 0; }
关于javascript - 检查多个对象属性的值并删除它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51651020/