js 找出多个数组中共同包含的元素, 并返回一个新的数组

js 找出多个数组中共同包含的元素, 并返回一个新的数组

该方法接收一个由多个数组组成的数组 arrs 作为参数。然后通过使用 reduce 方法对每个数组进行处理,最终将每个数组中与前面的数组共同存在的元素筛选出来,存储在一个新数组中返回。

let arr1 = [1,2,3,4,5],arr2=[[2,3,4]]
function getSameData (arrs) {
  return arrs.reduce(function (prev, cur) {
    return Array.from(new Set(cur.filter(item => prev.includes(item))))
  })
}
getSameData([arr1,arr2]) // 返回[2,3,4]

解释:

  1. prev 参数 表示上一个数组(初始值为空数组)
  2. cur 参数表示当前要处理的数组。
  3. cur.filter(item => prev.includes(item)) 表示找出当前数组中在上一个数组中也出现过的元素
  4. Array.from(new Set(cur.filter(item => prev.includes(item)))) 则表示去重后将其存储在一个新数组中并返回,在这使用了ES6的语法Set去重
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
找出两个对象数组中id不同的元素,可以使用JavaScript的一些内置方法和循环来实现。 首先,假设我们有两个对象数组arr1和arr2,每个数组包含多个对象,每个对象有一个id属性。 我们可以使用循环遍历arr1中的每个对象,并用每个对象的id属性与arr2中的每个对象的id属性进行比较。如果找到一个id不同的对象,则将该对象添加到一个数组中。 具体步骤如下: 1. 创建一个的空数组,用于存放id不同的元素。 2. 使用forEach()方法遍历arr1中的每个对象。 3. 在forEach()方法的回调函数中,使用find()方法在arr2中查找具有相同id的对象。 4. 如果find()方法返回undefined,则表示在arr2中未找到相同id的对象,将当前对象添加到数组中。 5. 最后,返回数组,其中包含id不同的元素。 以下是用代码实现上述步骤的例子: ```javascript function findDifferentElements(arr1, arr2) { let differentElements = []; arr1.forEach((obj1) => { const isDifferent = !arr2.find((obj2) => obj2.id === obj1.id); if (isDifferent) { differentElements.push(obj1); } }); return differentElements; } ``` 这样,调用`findDifferentElements(arr1, arr2)`将返回一个包含id不同的元素数组。 请注意,以上代码假设arr1和arr2中的每个对象包含一个id属性,且具有相同的属性名称。如果属性名称不同,需要相应地修改代码中的比较条件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值