积跬步 至千里
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)
业精于勤 荒于嬉