从一个数组中过滤掉另一个数组中的元素

从一个数组中过滤掉另一个数组中的元素

ES6方法 some,every, filter 的用法

some() 方法

  • 有一个条件满足就会返回true 不会执行剩余的元素 ,全都不满足返回true
  • some() 不会对空数组检测
  • some() 不会改变原数组
var arr1=[1,5,3,4,8,6]
var i=0
let res=arr1.some(item=>{
i=i+1
return item>=3
})
console.log(i,res) 2 ,true
var arr1=[8,5,3,4,12,9]
var i=0
let res=arr1.some(item=>{
i=i+1
return item<=2
})
console.log(i,res) 6,false

every()方法

  • 每一项都满足条件返回true ,有一个不满足就返回false``
  • every() 不会对空数组检测
  • every() 不会改变原数组
var arr1=[9,5,2,4,8,6]
var i=0
let res=arr1.every(item=>{
i=i+1
return item>=3
})
console.log(i,res) 3 ,false
var arr1=[8,5,3,4,12,9]
var i=0
let res=arr1.every(item=>{
i=i+1
return item>=2
})
console.log(i,res) 6,true

some 用于判断数组是否存在某一项的时候,every 用于判断数组是否都满足条件的时候

filter()方法

  • filter() 创建一个新的数组,新数组的元素,是所有符合指定数组筛选条件的元素
  • filter() 不会对空数组进行检测。
  • filter() 不会改变原始数组。
   var array = [{ num: 3 }, { num: 8 }, { num: 34 }, { num: 23 }, { num: 79 }, { num: 12 }];
    var newArr = array.filter(item => item.num == 3)
    console.log(newArr,array) // [{num:9}] //[{ num: 3 }, { num: 8 }, { num: 34 }, { num: 23 }, { num: 79 }, { num: 12 }]

使用filter 数组

在一个数组中,过滤掉另一个数组里相同的数据,需要用到 filter和some 的混合方法,第一层用filter 过滤掉与第二个数组相同的元素(用some 的方法,排查出相同的元素然后取反,相同的元素就会被过滤掉)

 var arr1 = [{ key: '1', label: '001' }, { key: '2', label: '002' }, { key: '3', label: '003' }, { key: '4', label: '004' }] // 原数组
 var arr2 = [{ key: '1', label: '001' }, { key: '4', label: '004' }] // 已经选择过的数组
 function filterData (array1, array2) {
    let arr = []
    arr = array1.filter(item => {
      return !array2.some((val) => {
        return val.key === item.key
      })
    })
    return arr
  }
  console.log(filterData(arr1, arr2))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值