我有一个对象,其中包含一些布尔值,如下所示:
{ date: "2017-10-05", name_change: false, age_change: true, ... }
我希望可以筛选出那些键值是true的内容,同时我也需要日期值,如何使用filter
?
谢谢。
我有一个对象,其中包含一些布尔值,如下所示:
{ date: "2017-10-05", name_change: false, age_change: true, ... }
我希望可以筛选出那些键值是true的内容,同时我也需要日期值,如何使用filter
?
谢谢。
Object.entries()
将对象转换为[key, value]元组的数组。通过检查值是否为true
来过滤元组。然后使用Object.fromEntries()
将其转换回对象:
const obj = {
date: "2017-10-05",
name_change: false,
age_change: true
};
const result = Object.fromEntries(
Object
.entries(obj)
.filter(([, val]) => val !== true)
);
console.log(result);
旧答案:
使用 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);
filter()
,并不是唯一的解释。无论哪种情况,编辑以澄清问题会比仅仅声明它不是重复问题更好。 - The Archetypal Paul