我有一个函数检查数组中的总和:
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 answers.length != 0 ? answers : console.log("nada")
。它失败的原因是因为三元条件在其条件中不支持return
。实际上,三元运算符对表达式求值,并且表达式不包含return语句。
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])
}
}
return answers.length != 0 ? answers : console.log("nada")
}
console.log(checkSum([1, 4, 6, 11], 10));
关于javascript - 如何使用三元运算符在JS中返回?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51797003/