Ali*_*mjo -1 javascript ecmascript-6
我有记录:
let a = [{
"resource" : "user",
"permissions" : [
"add",
"list",
"verify",
"add-credit",
"deactive",
"trash",
"edit",
"impersonate",
"active"
]
},
{
"resource" : "company",
"permissions" : [
"list",
"verify",
"pending",
"reject"
]
}];
Run Code Online (Sandbox Code Playgroud)
我想将其转换为:
{"user":[
"add",
"list",
"verify",
"add-credit",
"deactive",
"trash",
"edit",
"impersonate",
"active"
],
"company" : [
"list",
"verify",
"pending",
"reject"
]
};
Run Code Online (Sandbox Code Playgroud)
这可以通过自定义函数完成,以将结果存储并存储到另一个变量.
我要的是做到这一点的map,filter或在ES6的JavaScript中的任何新功能.
我试过用map.
a.map(function (res){return res.resource})
Run Code Online (Sandbox Code Playgroud)
使用 reduce
var output = a.reduce( ( acc, c ) => {
acc[ c.resource ] = c.permissions;
return acc; //return accumulator
} ,{}) // initialize accumulator to {}
Run Code Online (Sandbox Code Playgroud)
说明
reduce以迭代和初始化的蓄电池 acc为空对象 {}.c数组中的每个项目a
c.resource值(用户和公司)作为属性分配给acc(累加器)和该属性的值c.permissionsreturn在蓄能器 acc.| 归档时间: |
|
| 查看次数: |
47 次 |
| 最近记录: |