我有一系列 ID 和组织,如下所示:
var ids = ['1','2', '3'];
var orgs =
[
{ name: "Org 1", id: 1 },
{ name: "Org 2", id: 2 },
{ name: "Org 3", id: 2 }
]
Run Code Online (Sandbox Code Playgroud)
我想遍历这些以输出如下内容:
{
1: [
{name: "Org 1", id: 1}
],
2: [
{name: "Org 2", id: 2},
{name: "Org 3", id: 2}
]
}
Run Code Online (Sandbox Code Playgroud)
我试过这个没有成功:
var results = orgs.forEach(function (org) {
if (results[org.id]) {
results.push(org)
} else {
results[org.id] = [org]
};
});
Run Code Online (Sandbox Code Playgroud)
如果您不想使用像 Underscore、Ramda 或 Lo-Dash 这样的库,那么使用reduce以下代码编写它很简单:
var results = orgs.reduce(function(results, org) {
(results[org.id] = results[org.id] || []).push(org);
return results;
}, {})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5686 次 |
| 最近记录: |