ES6 - 根据True值过滤对象

时间:2017-10-05 12:08:16

标签: reactjs react-native ecmascript-6

我有一个包含一些像这样的布尔值的对象:

{ date: "2017-10-05", name_change: false, age_change: true, ... }

我想要filter()真实的密钥。 我还需要日期值。我该怎么做filter

问候。

1 个答案:

答案 0 :(得分:2)

使用Object#keys获取密钥,然后使用Array#reduce迭代密钥数组,并构建一个不包含值等于true的密钥的新对象:

const obj = { 
  date: "2017-10-05", 
  name_change: false, 
  age_change: true 
};

const result = Object.keys(obj)
  .reduce((o, key) => {
    obj[key] !== true && (o[key] = obj[key]);

    return o;
  }, {});

console.log(result);