【问题标题】:Function compares only the first value instead of all values in an array函数只比较第一个值而不是数组中的所有值
【发布时间】:2017-03-14 15:25:05
【问题描述】:

我的函数只比较数组中的第一个值。有什么问题?

var areArraySame = function(one, two){
  for(var i=0;one[i] === two[i];i++){
    return(console.log("true"));
  }
};
console.log(areArraySame([1,0,5,5,2,2] , [1,6,5,5,2,2]));

【问题讨论】:

    标签: javascript cycle


    【解决方案1】:

    因为您从 for 循环中返回Return 中断函数执行并将控制权返回给调用者。

    var areArraySame = function(one, two){
      for(var i=0;one[i] === two[i];i++){
        console.log("true");
      }
    };
    areArraySame([1,0,5,5,2,2] , [1,6,5,5,2,2]);

    而且我建议你使用loop,而不是for,因为这样会更清楚 带while循环

    var areArraySame = function(one, two){
       var index = 0;
       while(one[index] === two[index]){
         console.log("true");
         index++;
       }
    };
    areArraySame([1,0,5,5,2,2] , [1,6,5,5,2,2]);

    【讨论】:

      【解决方案2】:
      var areArraySame = function(one, two){
        var same = true;
        for(var i=0;i < one.length;i++){
          if (one[i] !== two[i]) {
              same = false;
              break;
          }
        }
      
        console.log(same);
        return same;
      };
      
      console.log(areArraySame([1,0,5,5,2,2] , [1,6,5,5,2,2]));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-30
        • 2020-08-20
        • 2021-04-28
        • 1970-01-01
        相关资源
        最近更新 更多