ES6 JavaScript 匹配两个数组对象的三种方法
作者:闭包旅人时间:2026-10-25 08:17:45浏览:205
本文介绍在 JavaScript ES6 环境下匹配两个数组对象值的三种实现方式。通过遍历对比、filter 结合 some 方法以及利用 indexOf 预提取值列表,分别演示如何找出两个数组中具有相同 value 属性的对象。
ES6 JavaScript 匹配两个数组对象的三种方法
判定两个数组中 value 字段是否一致
this.list = [
{
user_type: 0,
user_id: 1003,
department_id: 1,
department_name: "公司xx",
mobile: "",
realname: "廖xx",
com_name: "任公司",
label: "廖建平",
value: 1003
},
{
user_type: 0,
user_id: 1004,
department_id: 1,
department_name: "公司领导",
mobile: "",
realname: "贺金生",
com_name: "任公司",
label: "贺xx",
value: 1004
},
{
user_type: 0,
user_id: 1005,
department_id: 1,
department_name: "公司领导",
mobile: "",
realname: "李欢",
com_name: "任公司",
label: "李xx",
value: 1005
}
]
this.selectData = [
{
user_type: 0,
user_id: 1003,
department_id: 1,
department_name: "公司xx",
mobile: "",
realname: "廖xx",
com_name: "任公司",
label: "廖建平",
value: 1003
},
{
user_type: 0,
user_id: 1004,
department_id: 1,
department_name: "公司领导",
mobile: "",
realname: "贺金生",
com_name: "任公司",
label: "贺xx",
value: 1004
},
]方法一:双重循环对比
方案一
let result = []
for (let i = 0; i < this.selectData.length; i++) {
let obj = this.selectData[i]
for (let j = 0; j < this.list.length; j++) {
let aj = this.list[j]
if (obj.value === aj.value) {
result.push(aj)
break
}
}
}
console.log("result", result)方法二:filter 结合 some
方案二
let arr3 = this.selectData.filter(obj =>
this.list.some(obj1 => obj.value == obj1.value)
)
console.info("arr3", arr3)
this.result = arr3方法三:预提取值列表过滤
方案三
let arr4 = []
let arr5
this.list.filter(obj => arr4.push(obj.value))
arr5 = this.selectData.filter(obj => arr4.indexOf(obj.value) !== -1)
this.result = arr5
至此关于 es6 js 匹配两个数组对象的方法介绍完毕,更多相关 es6 js 匹配数组对象内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!
作者最新文章
什么时候该用JS构造器:与工厂模式、字面量的选择对比
2026-11-05 16:18:22
推荐几款轻量级JS照片墙开源库及对比
2026-11-05 15:56:19
JavaScript递归写法有哪些常见陷阱及避免方法
2026-11-05 14:53:38
JS数组浅拷贝与深拷贝怎么选?场景与方法总结
2026-11-05 14:41:02
p5.js 中 setup() 和 draw() 函数的执行机制详解
2026-11-05 12:32:38
