javascript - 检查多个对象属性的值并删除它们

标签 javascript node.js

我有一个这种格式的数据集:

{
  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/

相关文章:

javascript - 等待状态改变以对 redux 使用react

javascript - Sails.js Node 服务器 req.session 始终为空,使用 Passport-local 策略。

javascript - Node 异步/等待与 promise.all

node.js - 如何控制以下代码片段的 Node.js 的异步性质

node.js - Sails - 如何设置自定义文件名 req.file ('file' )

javascript - css 中的 if 或 case 语句

javascript - 在 React Native 中按下时更改按钮样式

javascript - 保存canvas.toDataURL()生成的文件

node.js - 即使 ID 有效,Mongoose findById 也会返回 null

node.js - Axios 访问自签名证书而不拒绝它