函数仅比较第一个值而不是数组中的所有值

时间:2017-03-14 15:25:05

标签: javascript cycle

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

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]));

2 个答案:

答案 0 :(得分:2)

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



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]);




答案 1 :(得分:0)

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]));