我有一个包含以下数据的数组:[ { 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()吗?
1 回答
![?](http://img1.sycdn.imooc.com/533e4c1500010baf02200220-100-100.jpg)
喵喔喔
TA贡献1735条经验 获得超5个赞
您可以使用 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)
添加回答
举报
0/150
提交
取消