我是JavaScript世界的新手。我怀疑return语句在JavaScript中是如何工作的。
我要做的是让函数传递一个参数param
并查看param
是否与exampleData
对象的键匹配。如果匹配发现我想返回值并打破每个函数的循环也打破了我不想在每个函数下执行任何其他语句的函数。如果未找到匹配项,则该函数必须返回null。但目前该函数始终返回空值。
function exampleFunction(param){
$.each(exampleData, function (key, value) {
if(key == param){
return value;
}
});
return null;
}
任何对此的见解都将受到高度赞赏。谢谢。
答案 0 :(得分:9)
您的示例似乎不需要循环。那个并从循环代表返回并没有为你做任何事情。
您可以使用in
运算符测试对象是否出现在对象中。
function exampleFunction(param){
return param in exampleData ? exampleData[param] : null;
}
答案 1 :(得分:3)
鉴于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;
}
答案 2 :(得分:1)
试试这个:
function exampleFunction(param){
return exampleData[param];
}
编辑:如果你想在参数未定义时返回null,那么看看Paul和Crazy Train的评论:
return (typeof exampleData[param] === 'undefined')? null: exampleData[param];
OR
return (param in exampleData) ? exampleData[param] : null;
答案 3 :(得分:0)
您的方法存在一些问题:
return
到$.each
,而不是外部函数,因此您永远不会得到该值。
function exampleFunction(param) {
return exampleData[param];
}
如果exampleData[param]
为undefined
,则会返回undefined
,否则会返回存储在那里的值。
如果你绝对需要未定义的案例来返回null
而不是undefined
,那么它会变得有点复杂。
function exampleFunction(param) {
if(exampleData.hasOwnProperty(param) {
return exampleData[param];
} else {
return null;
}
}