首页 > 解决方案 > 分组和过滤java脚本中的对象列表

问题描述

对象列表是

list= [{app: "a1", company: "20", permission: "All"},
{app: "a1", company: "21", permission: "download"},
{app: "a2", company: "20", permission: "search"}]

然后我需要将上面的列表过滤为

{
 "a1":{20:["All"],
       21:["download"]},
 "a2": {20:["search"]}
}

我正在使用 ES6。感谢你的关心 :)

标签: javascriptarrays

解决方案


首先我应该注意到,Stackoverflow 是帮助解决问题的资源,它不应该为你解决任务,它应该帮助你找到解决方案中的问题。

list.reduce((acc, item) => {
  if (!acc.hasOwnProperty(item.app)) {
    acc[item.app] = {}
  }

  if (!acc[item.app].hasOwnProperty(item.company)){
    acc[item.app][item.company] = []
  }

  acc[item.app][item.company].push(item.permission)
  return acc
},{})

推荐阅读