从一个数组中根据条件过滤得到一个新的数组

积跬步 至千里

Array.prototype.filter()

filter() 方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。 

 

需求:自定义table穿梭框,数据左右切换时,左侧的数据顺序保持不变

思路:左侧数据+右侧数据 = 所有数据 ,保持顺序不变 准备一个所有数据的数组,每次右侧删除变动,可以右侧删除后,

左侧数据 = 所有数据.filter(右侧数据),这样会保持原来的数据顺序不变

 

代码示例 关键代码

let tableData = allData.filter(item => !selectedData.some(sel => item.no === sel.no))

  let allData = [{
            name: 'aaa',
            age: 18,
            no: 1
        }, {
            name: 'bbb',
            age: 17,
            no: 2
        }, {
            name: 'ccc',
            age: 15,
            no: 3
        }, {
            name: 'ddd',
            age: 12,
            no: 4
        }, {
            name: 'eee',
            age: 8,
            no: 5
        }, {
            name: 'fff',
            age: 16,
            no: 6
        }]

        let selectedData = [{
            name: 'eee',
            age: 8,
            no: 5
        }, {
            name: 'ccc',
            age: 15,
            no: 3
        }, ]

        let tableData = allData.filter(item => !selectedData.some(sel => item.no === sel.no))
        console.log(tableData)

业精于勤 荒于嬉

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值