Javascript 类型错误indexOf()不是for循环中的函数
我看到还有其他类似名称的问题,我仔细看了一遍,它们并没有和我的问题相同的具体问题 出于某种原因,indexOf不是我的For循环中的函数。尝试在循环之外进行测试,结果很好,因此无法确定问题Javascript 类型错误indexOf()不是for循环中的函数,javascript,Javascript,我看到还有其他类似名称的问题,我仔细看了一遍,它们并没有和我的问题相同的具体问题 出于某种原因,indexOf不是我的For循环中的函数。尝试在循环之外进行测试,结果很好,因此无法确定问题 function sym(args) { //new array var newArray = []; //loops through however many arguments are inputted for(var i=0;i<arguments.length;i++) {
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]);
Array.push修改数组,不返回它,而是返回它的新长度,因此
newArray = newArray.push(arguments[i][j]);
简单使用
newArray.push(arguments[i][j]);
Array.push修改数组,不返回它,而是返回它的新长度,因此
newArray = newArray.push(arguments[i][j]);
简单使用
newArray.push(arguments[i][j]);
newArray.push返回被推送的数组的长度,而不是数组本身
删除newArray=newArray.pusharguments[i][j];只需将其设为newArray.pusharguments[i][j];错误应该消失。newArray.push返回被推送的数组的长度,而不是数组本身
删除newArray=newArray.pusharguments[i][j];只需将其设为newArray.pusharguments[i][j];错误应该消失。Array.prototype.push返回调用该方法的对象的新长度属性。看
在第一次循环迭代之后,newArray是一个数字,而不是数组
因此,修复代码:
newArray.push(arguments[i][j]);
Array.prototype.push返回调用该方法的对象的新长度属性。看
在第一次循环迭代之后,newArray是一个数字,而不是数组
因此,修复代码:
newArray.push(arguments[i][j]);
push实际返回数组的新长度,而不是null。push不返回null。array.push返回null否,它返回数组的新长度。push实际返回数组的新长度,而不是null。push不返回null。array.push返回null否,它返回数组的新长度。嗯,实际上,push返回数组的新长度。谢谢@RocketHazmat:-效果很好,谢谢!它让我感到困惑,因为我一直认为这是indexOf函数本身的问题。@jeff64 console.log是您的朋友:-好吧,实际上push返回数组的新长度。谢谢@RocketHazmat:-效果很好谢谢!这让我感到困惑,因为我一直认为这是indexOf函数本身的问题。@jeff64 console.log是您的朋友:-