git*_*han 1 javascript arrays json object
我想对JavaScript对象进行分组,因为age.My JSON是
var jsonObj=[{"name":"john","age":23},{"name":"mark","age":25},{"name":"jeni","age":21}]`
Run Code Online (Sandbox Code Playgroud)
我想成为这里的小组结果.
[23:{"name":"john","age":23},25:{"name":"mark","age":25},21:{"name":"jeni","age":21}]
Run Code Online (Sandbox Code Playgroud)
请帮我得到一个结果,我尝试用map和filter,但没有得到结果.
使用Array#reduce对对象进行分组.因为可以有多个年龄相同的人,所以将他们收集到age属性下的数组中:
var jsonObj=[{"name":"john","age":23},{"name":"mark","age":25},{"name":"poll","age":23},{"name":"jeni","age":21}];
var result = jsonObj.reduce(function(r, o) {
r[o.age] || (r[o.age] = []); // if the age key doesn't exist, set it to be an array
r[o.age].push(o); // push the object into the array
return r;
}, {});
console.log(result);Run Code Online (Sandbox Code Playgroud)
或者花哨的ES6单线版:
var jsonObj=[{"name":"john","age":23},{"name":"mark","age":25},{"name":"poll","age":23},{"name":"jeni","age":21}];
var result = jsonObj.reduce((r, o) => ((r[o.age] || (r[o.age] = [])).push(o), r), {});
console.log(result);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
65 次 |
| 最近记录: |