数组过滤filter函数

array.filter() 数组过滤元素,可以将数组中不符合的元素去掉,返回一个新数组。

filter函数接受一个回调函数,把回调函数依次作用于元素

回调函数的第一个参数是元素,第二个参数是元素位置,第三个参数是数组本身

根据这个函数的返回值,rturn true/false, true保留该元素,false不保留该元素

示例一:

let arr = [1, 2, 3, 4, 5, 6];

let r = arr.filter(function(item){
                return item % 2 !=  0;
           })

console.log(r) ;  // [1, 3, 5]


let arr = [1,2,6,3,4,5];
  let res = arr.filter(function(item,index,array){
      //元素值,元素的索引,原数组。
      return (item>3);
  });
  console.log(res);//[6, 4, 5]

示例二:创建一个数组,判断数组中是否存在或不存在某个值

//存在
var newarr = [
 { num: 1, val: 'ceshi', flag: 'aa' },
 { num: 2, val: 'ceshi2', flag: 'aa2' }
]
console.log(newarr.filter(item => item.num===2 ))
//不存在
var newarr = [
 { num: 1, val: 'ceshi', flag: 'aa' },
 { num: 2, val: 'ceshi2', flag: 'aa2' }
]
console.log(newarr.filter(item => item.num!=2 ))

示例3.去掉空数组空字符串、undefined、null

var arr = ['1','2',undefined, '3.jpg',undefined]
var newArr = arr.filter(item => item)
console.log(newArr)
 
var arr = ['1','2',null, '3.jpg',null]
var newArr = arr.filter(item => item)
console.log(newArr)
 
>//空字符串里面不能包含空格
var arr = ['1','2','', '3.jpg','']
var newArr = arr.filter(item => item)
console.log(newArr)

示例4.同个数组去重
var arr = [1, 2, 2, 3, 4, 5, 5, 6, 7, 7,8,8,0,8,6,3,4,56,2];
var arr2 = arr.filter((x, index,self)=>self.indexOf(x)===index)
console.log(arr2); //[1, 2, 3, 4, 5, 6, 7, 8, 0, 56]

发布了55 篇原创文章 · 获赞 4 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_44770377/article/details/102753098