ES6 根据字符串值创建单独的数组

我有一个包含以下数据的数组:


[ { download: 'Test1', user: 'email@email.com' },

  { download: 'Test2', user: 'email2@email.com' },

  { download: 'Test1', user: 'email3@email.com' },

  { download: 'Test1', user: 'email4@email.com' }

]

我正在尝试基于download字符串创建 2 个数组。因此,例如一个数组:


[ { download: 'Test1', user: 'email@email.com' },

  { download: 'Test1', user: 'email3@email.com' },

  { download: 'Test1', user: 'email4@email.com' }

]

和另一个数组:


[

  { download: 'Test2', user: 'email2@email.com' },

]

这样做的最佳方法是什么?我不能通过做 a 来过滤,download === 'Test2'因为download字符串总是会改变并且不同。


这会是一份工作.reduce()吗?


森林海
浏览 221回答 1
1回答

喵喔喔

您可以使用 reduce 和 object 作为累加器,基于下载属性值的俱乐部元素let data = [ { download: 'Test1', user: 'email@email.com' },{ download: 'Test2', user: 'email2@email.com' },{ download: 'Test1', user: 'email3@email.com' },{ download: 'Test1', user: 'email4@email.com' }]let final = data.reduce( (op,inp) => {  let {download}  = inp  op[download] = op[download] || []  op[download].push(inp)  return op},{})console.log(final)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript