我有一个对象pks
,想要提取所有值为true
的键。
pks = {3: false, 7: true, 2: true}
是否有一个下划线函数可以返回[7, 2]
?我尝试过_.invert
,但在这个过程中丢失了一个值,所以我正在寻找替代方案。
我有一个对象pks
,想要提取所有值为true
的键。
pks = {3: false, 7: true, 2: true}
是否有一个下划线函数可以返回[7, 2]
?我尝试过_.invert
,但在这个过程中丢失了一个值,所以我正在寻找替代方案。
你可以使用内置函数来实现这一点,不需要使用Underscore:
Object.keys(pks)
.filter(function(k){return pks[k]})
.map(Number)
试试这个:
_.reduce(pks, function(memo, val, key){
if (val) memo.push(key);
return memo;
}, []);
const pks = {3: false, 7: true, 2: true};
const trueKeys = Object.entries(pks).filter(([_, v]) => v).map(([k, _]) => +k);
console.log(trueKeys);
_.compact(_.map(pks, function(value, prop) {
if(value) {
return prop;
}
}));
function getTrueKeys(obj) {
var ret = [];
for (var key in obj) {
if (obj.hasOwnProperty(key) && obj[key] === true) {
ret.push(key);
}
}
return ret;
}