我看到还有其他名称相似的问题,我仔细检查了一下,发现它们确实与我的问题不同。
由于某种原因,在我的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/