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 JavaScript 匹配两个数组对象的三种方法

至此关于 es6 js 匹配两个数组对象的方法介绍完毕,更多相关 es6 js 匹配数组对象内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

作者最新文章