gpt4 book ai didi

javascript - 在对象上使用过滤器

转载 作者:行者123 更新时间:2023-12-01 03:58:56 25 4
gpt4 key购买 nike

我有一个仅包含简单键值对的对象,我想过滤掉任何具有错误值的属性。使用 Array.prototype.filter() 可以吗?

最佳答案

Is this possible using Array.prototype.filter()?

是的,但不是直接:您可以在使用Object.keys或类似的之后执行此操作:

var arrayOfTruthyValues = Object.keys(obj).filter(key => obj[key]);

结果是一个真值数组。

如果你希望最终结果是一个对象,将filterreduce结合起来就可以做到:

var newObj = Object.keys(obj)
.filter(key => obj[key])
.reduce((newObj, key) => {
newObj[key] = obj[key];
return newObj;
}, {});

这主要只是使用reduce作为循环结构(因为我们从未真正改变累加器值,我们只是不断返回相同的对象),这有时被认为是“滥用”。 :-) 这意味着我们可以不使用 filter 部分,而只需在 reduce 中添加一个 if,但是...

<小时/>

请注意,Object.keys 仅包含对象的自己可枚举属性。如果您想要拥有自己的属性,即使它们不可枚举,那么可能会使用 Object.getOwnPropertyNames 来代替。

关于javascript - 在对象上使用过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42355148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com