Javascript函数始终返回null
我是JavaScript世界的新手。我怀疑return语句在JavaScript中是如何工作的 我试图做的是让函数传递一个参数Javascript函数始终返回null,javascript,Javascript,我是JavaScript世界的新手。我怀疑return语句在JavaScript中是如何工作的 我试图做的是让函数传递一个参数param,并查看param是否与exampleData对象的键匹配。如果找到匹配项,我希望返回值并中断每个函数的循环,同时也中断函数,我不希望在每个函数下执行任何其他语句。如果未找到匹配项,则函数必须返回null。但目前该函数总是返回空值 function exampleFunction(param){ $.each(exampleData, function
param
,并查看param
是否与exampleData
对象的键匹配。如果找到匹配项,我希望返回值并中断每个函数的循环,同时也中断函数,我不希望在每个函数下执行任何其他语句。如果未找到匹配项,则函数必须返回null。但目前该函数总是返回空值
function exampleFunction(param){
$.each(exampleData, function (key, value) {
if(key == param){
return value;
}
});
return null;
}
如能对此有所了解,将不胜感激。谢谢。鉴于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;
}
试试这个:
function exampleFunction(param){
return exampleData[param];
}
编辑:如果要在参数未定义时返回null,请查看Paul和Crazy Train的注释:
return (typeof exampleData[param] === 'undefined')? null: exampleData[param];
或
您的示例似乎不需要循环。这和从循环委托返回对您没有任何帮助 可以使用操作符测试对象中是否出现关键点
function exampleFunction(param){
return param in exampleData ? exampleData[param] : null;
}
您的方法存在一些问题:
exampleData[param]
是未定义的
,它将返回未定义的
,否则,它将返回存储在那里的值
如果您绝对需要未定义的大小写返回null
而不是undefined
,那么它会变得有点复杂
function exampleFunction(param) {
if(exampleData.hasOwnProperty(param) {
return exampleData[param];
} else {
return null;
}
}
你确定键和参数匹配吗?另外,您确定该值不为null吗?您的
返回值代码>处于不同的功能中。只需使用for in
循环即可。无需执行所有这些操作exampleData[param]
的作用几乎相同。当param不在exampledata中时,它等于未定义。根本不需要循环,除非你真的需要使用=
操作符的类型强制。结束每个操作符需要额外的+1。没有必要通过exampleData循环。除非你想在返回之前修改值。修改值没有什么区别。我只是对OP的思路提供了最简单的更正;我绝对同意有更好的解决方案发布。如果它是null,它返回null。如果未定义,则返回未定义。因此,如果他想要null,则需要测试它是否存在,无需将其他人的答案复制到yours@mplungjan它们是很好的建议,所以我编辑了我的答案以反映这一点。扩展答案没有坏处。除非调用方正在测试==null
。
function exampleFunction(param) {
return exampleData[param];
}
function exampleFunction(param) {
if(exampleData.hasOwnProperty(param) {
return exampleData[param];
} else {
return null;
}
}