js之如何筛选出两个数组相同的值
作者:前端代码の搬运工
这篇文章主要介绍了js之如何筛选出两个数组相同的值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
js筛选出两个数组相同的值
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 就是我们要处理的数据
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。