function filter() {
var array1 = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var array2 = array1.filter(function(n) {
return array1[n] = 1;
});
console.log(array2);
}
filter();
此函数返回具有以下值的数组:
[1, 1, 3, 1, 5, 1, 7, 1, 9]
我不明白为什么?有人可以帮我解释一下吗
答案 0 :(得分:4)
这是因为return array1[n] = 1;
始终返回true,并且每种情况下都会返回每个元素。也请===
对其进行更改。
答案 1 :(得分:0)
var array1 = [1,2,3,4,5,6,7,8,9]; 数组索引= [0,1,2,3,4,5,6,7,8]
var array2 = array1.filter(function(n){
return array1[n] = 1;
});
步骤1:
array1.filter(function(1){//数组1的第一个值
return array1[1] = 1; // you assigning the index 1 of array as 1
});
输出:现在array1将如下所示:[1,1,3,4,5,6,7,8,9]
步骤2:
array1.filter(function(1){// array1的第二个值为1
return array1[1] = 1; // you assigning the index 1 of array as 1
});
现在array1将如下所示:[1,1,3,4,5,6,7,8,9]
步骤2:
array1.filter(function(3){//数组1的第三个值
return array1[3] = 1; // you assigning the index 3 of array as 1
});
现在array1将如下所示:[1,1,3,1,5,6,7,8,9]
类似地,这将应用于剩余的数组值