【发布时间】:2018-08-11 06:13:32
【问题描述】:
我有一个检查数组总和的函数:
function checkSum(array, sum) {
// array = [1,4,6,11] sum = 10
var answers = [];
var map = new Map();
for (var x = 0; x < array.length; x++) {
if (map.has(array[x])) {
answers.push([sum - array[x], array[x]])
} else {
map.set(sum - array[x])
}
}
answers.length != 0 ? console.log(answers) : console.log("nada")
}
我最初的最后一行只是return answers;,但假设我不想返回一个空数组——相反,我宁愿只记录一个语句。
为什么return 在三元条件下不能像这样工作:
answers.length != 0 ? return answers : console.log("nada")
【问题讨论】:
-
可以把return放在三元前面。它会返回未定义的console.log结果的答案。
-
您不能在三元运算符中使用
return:stackoverflow.com/questions/35231609/… -
return是一个语句,而不是一个表达式。 -
不要在 if-else 中滥用三元......除非在 code-golf 中。
标签: javascript