为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

森林海 2021-09-30 15:11:17
我有一个包含以下数据的数组:[ { 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 回答

?
喵喔喔

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)


查看完整回答
反对 回复 2021-09-30
  • 1 回答
  • 0 关注
  • 183 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信