filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
注意: filter() 不会对空数组进行检测。
注意: filter() 不会改变原始数组。
语法:array.filter(function(currentValue,index,arr)
属性 | 描述 |
---|---|
currentValue | 必须。当前元素的值 |
index | 可选。当前元素的索引值 |
array | 可选。当前元素属于的数组对象 |
例:将[1,2,4,6,8,1,9,2] 数组中重复的元素去掉
你以为利用filter这么做么???
var arr = [1,2,4,6,8,1,9,2];
var newArr = [];
arr.filter(function(val,index,currentArr) {
if (newArr.indexOf(currentArr[index]) === -1) {
newArr.push(currentArr[index]);
}
})
console.log(newArr); // [1,2,4,6,8,9]
提示:indexOf返回的是数组中第一次出现value的位置,如果这个值等于索引号那岂不是去重了?
var arr = [1,2,4,6,8,1,9,2];
var newArr = arr.filter(function(val,index,currentArr) {
return currentArr.indexOf(val) === index;
})
console.log(newArr); // [1,2,4,6,8,9]