我最近意识到,当我使用函数循环数组并返回匹配项时,实际上我不需要最后返回 false/null。
例如,如果我有:
*编辑的例子。原始示例来自我试图简化但忘记更改名称/上下文的函数。对困惑感到抱歉。这是一个适合我的问题标题的更好示例:
var hasKey = hasKeyMatch(key);
function hasKeyMatch(key) {
for (var i = 0; i < array.length) {
if (array[i].key === key) {
return true;
}
}
};
我其实不需要return false,好像没有key的return,hasKey会是未定义的。所以我仍然可以使用 hasKey 作为布尔值。
但这被认为是好的风格吗?我意识到在 Java 这样的语言中,有一个“备份”返回是必要的,所以有些人把这个习惯带到了 JS 中。但我认为尽量减少不必要的退货是理想的,尽管我不知道退货的实际成本。
当我查看以下问题的答案时,我对他为什么选择返回一个已经推送到所需数组的变量感到困惑。我认为他的返回是故意的,并且他不打算将返回的变量存储在任何地方。在函数末尾返回变量是否有好处(比如垃圾回收)?