gpt4 book ai didi

javascript - 根据值过滤对象属性

转载 作者:可可西里 更新时间:2023-11-01 01:46:01 25 4
gpt4 key购买 nike

是否有一些优雅的方法可以使用 lodash/underscore 从该对象中过滤掉错误的属性?类似于 _.compact(array) 如何从数组中删除虚假元素

所以从

{
propA: true,
propB: true,
propC: false,
propD: true,
}

回归

{
propA: true,
propB: true,
propD: true,
}

最佳答案

这里有两个普通的 javascript 选项:

A.: 遍历对象的键和 delete 那些具有虚假值(value)的人。

var obj = {
propA: true,
propB: true,
propC: false,
propD: true,
};

Object.keys(obj).forEach(key => {
if (!obj[key]) delete obj[key];
});

console.log(obj);

参见 Object.<a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys" rel="noreferrer noopener nofollow">keys()</a>Array.prototype.<a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach" rel="noreferrer noopener nofollow">forEach()</a>

B.:迭代对象的键并将真值添加到新对象。

var obj = {
propA: true,
propB: true,
propC: false,
propD: true,
};

var filteredObj = Object.keys(obj).reduce((p, c) => {
if (obj[c]) p[c] = obj[c];
return p;
}, {});

console.log(filteredObj);

参见 Object.<a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys" rel="noreferrer noopener nofollow">keys()</a>Array.prototype.<a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce" rel="noreferrer noopener nofollow">reduce()</a>

关于javascript - 根据值过滤对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29282273/

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