js简单数组与对象数组的去重处理
const res = new Map();
const newList = defaultRes.filter((arr:any) => !res.has(arr.dataIndex) && res.set(arr.dataIndex, 1))
△例1.使⽤Map去重了对象数组中dataIndex重复的数据
-------------------------------------------------------------------------
△例2.使⽤Set去重了简单的数组中重复的数据
先copy⼀下Map的的介绍:Map是⼀组键值对的结构,具有极快的查速度。
具体是这样的形式:
ps:⼀个key只能对应⼀个value,重新存⼊value会覆盖之前的值。
Map的⽅法:
var m = new Map(); // 空Map
m.set('Adam', 67); // 添加新的key-value
m.has('Adam'); // 是否存在key 'Adam': true
<('Adam'); // 67
m.delete('Adam'); // 删除key 'Adam'
filter过滤对象数组<('Adam'); // undefined
因此例1的思路可以清楚地描述出来:筛选出defaultRes⾥dataIndax不存在的项且存⼊ =>返回新的去重好的对象数组。
第⼀次⽤Map,真好⽤!!!
⽽为什么不⽤Set处理对象数组呢?是因为:
Set和Map类似,也是⼀组key的集合,但不存储value。由于key不能重复,所以,在Set中,没有重复的key。在使⽤Set的过程中,重复的元素会⾃动被过滤掉,就算⽤add⽅法添加,也不会重复存⼊值:
OK!今天也是温故知新、充满收获的⼀天呢!(虽然是很基础的东西,嘻嘻)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论