在属性列表中,检查对象具有哪个属性?对象只能有一个属性

时间:2015-04-30 19:26:26

标签: javascript underscore.js lodash

对象可以具有属性a,b,c或d。

找出它有哪一种最好的方法是什么?

var input = {
    name: 'Bob',
    a: 1
}

预期产出:

a

我之前使用过:

_.keys(_.pick(input, 'a', 'b', 'c', 'd'))[0]

但是想知道是否有更好的方法来做到这一点?

2 个答案:

答案 0 :(得分:0)

这应该这样做。不确定它是否更好"但它会让你不得不使用另一个库加上应该更轻一点。



var input = {
    a: 1
}

function whichProperty(obj) {
    var possibilities = ['a', 'b', 'c', 'd'];
    return possibilities.filter(function (a) {
        return obj[a];
    })[0];
}

document.write(whichProperty(input));




答案 1 :(得分:0)

不确定这是否更好,但也许更具表现力的笑脸:

    var result = _.find('abcd', function(key){
        return _.has(input,key);
    })