Javascript 在属性列表中,检查对象具有哪些属性?对象只能具有其中一个属性
对象可以具有属性a、b、c或d 找出哪一个最好的方法是什么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'
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()
。