将重复值推入新数组

韦克·乌

我有这样的对象数组

const data = [
  { 
     name: "John",
     transaction: "10/10/2010",
     item: "Bag"
  },
  { 
     name: "Steven",
     transaction: "31/10/2020",
     item: "Shoe"
  },
  { 
     name: "John",
     transaction: "18/06/2019",
     item: "Sock"
  }
]

您会看到该数组中对象的名称具有重复的名称,但事务不同

然后我想要这样的结果:

const result = [
  { 
     name: "John",
     transactions: [
         {
            date: "10/10/2010",
            item: "Bag"
         },
         {
            date: "18/06/2019",
            item: "Sock"
         }        
      ]
  },
  { 
     name: "Steven",
     transactions: [
         {
            date: "31/10/2020",
            item: "Shoe"
         }  
      ]
  },
]

因此,新阵列记录了同一个人的新交易

harish sambasivam

的代码是:

const data = [
  { 
     name: "John",
     transaction: "10/10/2010",
     item: "Bag"
  },
  { 
     name: "Steven",
     transaction: "31/10/2020",
     item: "Shoe"
  },
  { 
     name: "John",
     transaction: "18/06/2019",
     item: "Sock"
  }
]

let Transactions = []

data.forEach(data => {
       Transactions.some(t => {
            if(t.name === data.name){
            t.transactions.push({date:data.transaction,item:data.item})
            return;
            }
            })

            Transactions.push({
                name:data.name,
                transactions:[
                    {date:data.transaction,item:data.item}
                ]
            })
            console.log(Transactions);
})

我认为array.some比forEach循环更好,所以决定坚持下去。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章