有一个基于某种条件function
返回key
的object
,如果key
返回的是0
,那么我得到的值是undefined
var obj = {'some','values'};
function getObjectKey(){
obj.forEach(function(value, key) {
if(some condition){
return key;
}
});
}
var objectKey = getObjectKey();
console.log(objectKey); //returns `undefined` if the key returned is 0.
如果密钥为0,如何获取密钥?
您需要另一种方法,因为Array#forEach
没有短路可以终止循环。
在这种情况下,请使用更好Array#some
。
function getObjectKey(object, condition){
var k;
Object.keys(object).some(function(key) {
if (condition(object[key])) {
k = key;
return true;
}
});
return k;
}
var object = { zero: 0, one: 1, two: 2, three: 3, four: 4, five: 5 };
console.log(getObjectKey(object, function (v) { return v === 3; }));
使用ES6,您可以使用 Array#find
如果数组中的元素满足提供的测试功能,则该
find()
方法将在数组中返回一个值。否则undefined
返回。
function getObjectKey(object, condition) {
return Object.keys(object).find(function(key) {
return condition(object[key]);
});
}
var object = { zero: 0, one: 1, two: 2, three: 3, four: 4, five: 5 };
console.log(getObjectKey(object, v => v === 3));
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句