我有對象PKS並想提取所有按鍵,其中值爲trueMap對象鍵數組值是true
pks = {3: false, 7: true, 2: true}
有下劃線的功能,可以返回[7, 2]
?我試過_.invert
但我失去了在這個過程中的一個值,所以我正在尋找一個替代
我有對象PKS並想提取所有按鍵,其中值爲trueMap對象鍵數組值是true
pks = {3: false, 7: true, 2: true}
有下劃線的功能,可以返回[7, 2]
?我試過_.invert
但我失去了在這個過程中的一個值,所以我正在尋找一個替代
您可以通過內置的功能,無需下劃線做到這一點:
Object.keys(pks)
.filter(function(k){return pks[k]})
.map(Number)
試試這個:
_.reduce(pks, function(memo, val, key){
if (val) memo.push(key);
return memo;
}, []);
據我知道有沒有那麼明確這樣做下劃線的功能,但有一個辦法,你可以自己做:
function getTrueKeys(obj) {
var ret = [];
for (var key in obj) {
if (obj.hasOwnProperty(key) && obj[key] === true) {
ret.push(key);
}
}
return ret;
}
Lodash:
_.compact(_.map(pks, function(value, prop) {
if(value) {
return prop;
}
}));