本文介绍在JavaScript中如何高效筛选两个数组的相同值。通过示例展示了基础数组的交集获取,以及针对复杂对象数组,利用Map对象进行去重并结合filter方法匹配ID的实现方案,帮助开发者处理实际业务中的数据过滤需求。
JavaScript 筛选出两个数组相同的值
let arr1 =[1,2,3] //跟
let arr2 =[4,6,5] //子
let arr3 =[1,2,6] //根子都有
let frist =arr3.filter(item=> arr1.indexOf(item)>-1) //跟
let frist1 =arr3.filter(item=> arr2.indexOf(item)>-1)//子
console.log(frist)
console.log(frist1)筛选两个数组相同id,并过滤多余数据
第一个数据格式
[
{id: 129465, label: 0, labelName: "无", labelStatus: null, relateType: 2, …},
{id: 129465, label: 0, labelName: "无", labelStatus: null, relateType: 2, …},
{id: 129464, label: 0, labelName: "无", labelStatus: null, relateType: 2, …},
{id: 129464, label: 0, labelName: "无", labelStatus: null, relateType: 2, …},
{id: 129424, label: 0, labelName: "无", labelStatus: null, relateType: 2, …},
{id: 129424, label: 0, labelName: "无", labelStatus: null, relateType: 2, …},
{id: 129423, label: 0, labelName: "无", labelStatus: null, relateType: 2, …},
]第二个数据格式
[129464,129424,129423]解决:
let map = new Map();
for (let item of 第一个数据) {
if (!map.has(item.id)) {
map.set(item.id, item);
};
};
let value = [...map.values()].filter(item => 第二个数据.includes(item.id))这里 value 就是我们要处理的数据

总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。