繁体   English   中英

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

[英]Of a list of properties, check which property an object has? Object can only have one of the properties

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

找出哪一个是最好的方法是什么?

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

预期产量:

a

我以前使用的是:

_.keys(_.pick(input, 'a', 'b', 'c', 'd'))[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)); 

不知道这是否更好,但也许更富有表现力:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM