JavaScript 函数总是返回 null
2013-07-31
14068
我是 JavaScript 世界的新手。我对 JavaScript 中的 return 语句如何工作有疑问。
我想做的是让一个函数传递一个参数
param
并查看
param
是否与
exampleData
对象的键匹配。如果找到匹配项,我想返回该值并中断每个函数的循环,也中断该函数,我不想在每个函数下执行任何其他语句。如果未找到匹配项,则函数必须返回 null。但目前该函数始终返回 null 值。
function exampleFunction(param){
$.each(exampleData, function (key, value) {
if(key == param){
return value;
}
});
return null;
}
任何对此的见解都将不胜感激。谢谢。
3个回答
您的示例似乎不需要循环。循环和从循环委托返回对您没有任何作用。
您可以使用
in
运算符测试某个键是否出现在对象中。
function exampleFunction(param){
return param in exampleData ? exampleData[param] : null;
}
canon
2013-07-31
鉴于 Crazy Train 的评论,您需要捕获匹配的值,以便稍后返回它:
function exampleFunction(param) {
var match = null;
$.each(exampleData, function (key, value) {
if (key == param) {
match = value;
return false; // to end the $.each early
}
});
return match;
}
Cᴏʀʏ
2013-07-31
您的方法存在一些问题:
-
您定义的内部函数
返回
到$.each
,而不是外部函数,因此您永远无法获得该值。 - 您不需要以疯狂的方式迭代对象。Javascript 中的对象是哈希表,您只需执行以下操作即可
:
function exampleFunction(param) {
return exampleData[param];
}
如果
exampleData[param]
为
undefined
,它将返回
undefined
,否则,它将返回存储在那里的值。
如果您确实需要 undefined 情况返回
null
而不是
undefined
,那么它会变得有点复杂。
function exampleFunction(param) {
if(exampleData.hasOwnProperty(param) {
return exampleData[param];
} else {
return null;
}
}
2013-07-31