# 过滤数组,
返回一个新数组,包含符合条件的所有元素,
如果没有符合条件的元素,则返回空数组。
# filter过滤器,返回的是一个boolean,如下,
a、返回true时, 函数内部,会自动将这次回调的n,加入到新的数组中
b、返回false时,函数内部,会过滤掉这次的n
示例:
const nums = [
{ id: 20, age:18, name: 'Captain Piett' },
{ id: 24, age:30, name: 'General Veers' },
{ id: 56, age:58, name: 'Admiral Ozzel' },
{ id: 88, age:68, name: 'Commander Jerjerrod' }
];
// 对数组进行过滤,筛选出,年龄大于18岁的数据
let newArr = nums.filter(function (item) {
return item.age < 58
})
console.log(newArr);
// [ {id: 20, age: 18, name: 'Captain Piett'}, {id: 24, age: 30, name: 'General Veers'} ]
const nums = [1,1,2,3,3,4,5,6,5,6,7,7,8,9,1,2,3,4]
# 这个unique函数,就是数组去重的,可以直接使用
function unique(arr){
return arr.filter(function(item, index, arr){
// index是每一个item,在数组arr中的下标。
console.log(item,index);
// arr.indexOf(item, 0) 返回这个item,在数组nums中,第一次出现的位置索引
console.log("indexof=",arr.indexOf(item,0));
return arr.indexOf(item, 0) == index
})
}
console.log(unique(nums)); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
//--------------------------------------------------------------
# 方法2
let newArr = nums.filter(function(item, index, self){
/*
index 是每一个item,在数组nums中的位置(数组下标从 0 开始)
self 是这个nums数组
*/
console.log(item, index, self);
// self.indexOf(item) 这个值是:item 第一次在,self数组中,出现的位置索引
console.log(self.indexOf(item));
return self.indexOf(item) === index
})
console.log(newArr); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
***不讲废话,嗯~,除了这句***
filter 及 数组去重
于 2023-03-21 17:27:50 首次发布