我有以下对象:
var config = {
apps: false,
transfers: false,
approvals: true
};
我想知道如何使用Lodash遍历config
对象中的每个键,并找出第一次出现值true
的键。在上面的示例中,我希望输出为approvals
。如果transfers
的值为true
,我希望输出为transfers
。
基本上,我想要一种更清洁的方法来做到这一点:
if (config.apps) {
answer = 'apps';
} else if (config.transfers) {
answer = 'transfers';
} else if (config.approvals) {
answer = 'approvals';
}
谢谢!
答案 0 :(得分:2)
您可以使用_.findKey()
:
var config = { apps: false, transfers: false, approvals: true };
var answer = _.findKey(config);
console.log(answer);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.2/lodash.min.js"></script>
或者,如果没有lodash,您可以Array.prototype.reduce()
使用Object.keys()
:
var config = { apps: false, transfers: false, approvals: true };
var answer = Object.keys(config).reduce(function(answer, key) {
return value = config[key] ? key : answer;
}, '');
console.log(answer);
答案 1 :(得分:0)
不需要lodash:
var config = {
apps: false,
transfers: false,
approvals: true
};
Object.keys(config).find((key) => {
return config[key];
});
答案 2 :(得分:0)
比较新的方法,然后Object.keys是entries
,您可以检索密钥和值
let config = {apps: false, transfers: false, approvals: true}
let [key, value] = Object.entries(config).find(([key, val]) => val)
console.log(key, value)
&#13;