我有一个函数检查数组中的总和:

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/

10-11 22:00