【问题标题】:Merge two array and if some value true add property? Javascript合并两个数组,如果某些值为 true 添加属性? Javascript
【发布时间】:2022-11-17 10:31:46
【问题描述】:

我需要循环思考两个数组并返回另一个具有不同值的数组。

两个数组的示例:

let arr1 = ['one' , 'two' , 'three'];
let arr2 = ['four' , 'one' , 'two'];

我需要什么?

循环认为数组并返回相同的值,我希望新数组像:

let res = [
 { name : 'one' , isSame: true },
 { name : 'two' , isSame: true },
 { name : 'three' },
 { name : 'four' }
];

我删除了重复项,并将重复值的 isSame 值添加为 true。

一和二重复(两次)。

我试过的

 let arr3 = arr1.map((item, i) =>
 Object.assign({}, item, arr2[i])
 ); 

但是我得到了一个拆分数组,它被删除了重复

【问题讨论】:

    标签: javascript


    【解决方案1】:

    我建议你使用reduce()来做

    let arr1 = ['one' , 'two' , 'three'];
    let arr2 = ['four' , 'one' , 'two'];
    
    let arr3 = arr1.concat(arr2)
    let result = arr3.reduce((a,c) =>{
      let obj = a.find(i => i.name == c)
      if(obj){
        obj['isSame'] = true
       }else{
         a.push({'name':c})
       }
      return a
    },[])
    console.log(result)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-01
      • 2019-01-15
      • 2017-04-01
      • 2018-03-05
      • 2017-02-07
      • 2012-01-10
      • 1970-01-01
      相关资源
      最近更新 更多