Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在属性列表中,检查对象具有哪些属性?对象只能具有其中一个属性_Javascript_Underscore.js_Lodash - Fatal编程技术网

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

Javascript 在属性列表中,检查对象具有哪些属性?对象只能具有其中一个属性,javascript,underscore.js,lodash,Javascript,Underscore.js,Lodash,对象可以具有属性a、b、c或d 找出哪一个最好的方法是什么 var input = { name: 'Bob', a: 1 } 预期产出: a 我以前使用过: _.keys(_.pick(input, 'a', 'b', 'c', 'd'))[0] 但是我想知道是否有更好的方法来做这件事?这应该可以。不确定它是否“更好”,但它会让你不用再使用另一个library plus,应该轻一点 var输入={ a:1 } 功能属性(obj){ var可能性=['a','b','c'

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

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

var input = {
    name: 'Bob',
    a: 1
}
预期产出:

a
我以前使用过:

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

但是我想知道是否有更好的方法来做这件事?

这应该可以。不确定它是否“更好”,但它会让你不用再使用另一个library plus,应该轻一点

var输入={
a:1
}
功能属性(obj){
var可能性=['a','b','c','d'];
返回可能性。过滤器(函数(a){
返回obj[a];
})[0];
}

文件。写入(whichProperty(输入))不确定这是否更好,但可能有一点更具表现力:

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

if(“输入中的a”)
或者如果要返回属性,
Object.keys
您可以使用
\uuuu.intersection()
获取键列表和可能只出现一次的键列表的交集。如果交叉点只包含一个关键点,那么这就是答案;如果不止一个,则对象违反了规则。或者,如果希望得到布尔结果,而不是找到的字符串,则使用
some()
,而不是
find()