我看到还有其他名称相似的问题,我仔细检查了一下,发现它们确实与我的问题不同。

由于某种原因,在我的for循环中未调用indexOf()函数。尝试过循环外的测试,它很好,所以不确定这个问题。

function sym(args) {
  //new array
  var newArray = [];

  //loops through however many arguments are inputted
  for(var i=0;i<arguments.length;i++) {
    //loops through each argument array's items
    for(var j=0;j<arguments[i].length;j++) {
      //if the newArray array doesn't have the array item, it adds it to the new array, to avoid duplicates.
      if(newArray.indexOf(arguments[i][j]) === -1) {
        newArray = newArray.push(arguments[i][j]);
      }
    }
  }
  return newArray;
}

sym([1, 2, 3], [5, 2, 1, 4]);

最佳答案

newArray.push返回被压入的数组的长度,而不是数组本身。

删除newArray = newArray.push(arguments[i][j]);并将其设置为newArray.push(arguments[i][j]);,您的错误应消失。

关于javascript - 类型错误indexOf()不是for循环中的函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39575495/

10-12 07:11