从javascript函数返回数字零

从javascript函数返回数字零,javascript,Javascript,有一个函数根据某些条件返回对象的键,如果它返回的键是0,那么我得到的值是未定义的 var obj = {'some','values'}; function getObjectKey(){ obj.forEach(function(value, key) { if(some condition){ return key; } }); } var objectKey = getObjectKey(); console.log(obj

有一个
函数
根据某些条件返回
对象的
,如果它返回的
0
,那么我得到的值是
未定义的

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,如何获取密钥?

您需要另一种方法,因为没有用于结束循环的短路

在这种情况下,使用更好的

函数getObjectKey(对象、条件){ var-k; 对象。键(对象)。一些(函数(键){ if(条件(对象[键]){ k=键; 返回true; } }); 返回k; } var对象={0:0,1:1,2:2,3:3,4:4,5:5};
log(getObjectKey(对象,函数(v){return v==3;}))您需要在对象中指定键

这是无效的语法:

{'some','values'};
这将是一个数组:

[ 'some','values' ];
但是你真的想要一个对象,所以把钥匙放进去:

 { "key0": "some", "key1": "values" };
//您的obj出现语法错误
var obj={
“某些”:“值”,
“另一个”:“另一个值”,
“零”:0,
“null”:null
}
//您应该将对象和键与函数一起使用
函数getObjectKey(对象,键){
变量键=对象键(obj)
var index=keys.indexOf(key)
//如果位移位索引为truthy,则返回键else未定义
返回~索引
?obj[键[索引]]
:void 0//void value-将指定给它的值更改为未定义
}
log(getObjectKey(obj,'some'))
log(getObjectKey(obj,'other'))
log(getObjectKey(obj,'doesntExist'))
log(getObjectKey(obj,'zero'))

log(getObjectKey(obj,'null'))
请将obj更改为有效对象。正如上面所写的,它可能是一个数组,也可能有错误的括号。@downvoter:我可以知道downvote的原因吗?