布尔列表函数的困难之处

时间:2018-10-06 19:37:06

标签: javascript

编写一个名为“ find_value”的函数,该函数将整数列表作为参数并搜索值6。如果列表中有6,则该函数将返回一个布尔值,表示true,否则返回false。 (下面的代码)

function find_value(integers){
    for (var i of integers){
        if (i == 6 in integers){
            return true;
        }
        else {
            return false;
        }
    }
}

当输入类似[0,1,6]的列表时,我应该将期望值设为true,但最终却得到false。那我在做什么错了?

3 个答案:

答案 0 :(得分:1)

i是采用for ... of statement的数组的实际值。

然后,您需要检查该值,最好使用Identity/strict equality operator ===并返回true,而不返回false,因为它会终止迭代和函数。

在函数结束之前,将最后一个return false;语句移出循环。

function find_value(integers) {
    for (var i of integers) {
        console.log(i); // just check the value
        if (i === 6) {
            return true;
        }
    }
    return false;
}
console.log(find_value([0, 1, 6]));

答案 1 :(得分:0)

执行此操作(找不到时无需返回。)

function find_value(integers){
    for (var i of integers){
        if (i == 6){
            return true;
        }
    }
}

console.log(find_value([0,1,6]));

或者您可以执行以下操作:

function find_value(integers){
    var valueHolder = [];
    for (var i of integers){
         if (i == 6){
             valueHolder.push(true);
          }
          else {
              valueHolder.push(false);
          }
       }
       
    return valueHolder;
}

console.log(find_value([0,1,6]));

答案 2 :(得分:0)

这是我对所有int数组和任何搜索到的数字的谦虚解决方案:

window.onload = function(e) {
             
  var arr = [1, 2, 6];
  get_six_from_array(arr,6);
  
  function get_six_from_array(arr,num){

  console.log(arr.includes(num));

  if(arr.includes(num)){
        return true;}
     else{
        return false;
    }
  
  }
};