【发布时间】:2019-03-31 02:49:01
【问题描述】:
假设我有以下对象数组:
myArray = [
{name: 'First', parent: 1, delta: 2},
{name: 'Second', parent: 1, delta: 1},
{name: 'Third', parent: 2, delta: 1}
];
我想将此数组转换为一个对象,其中包含父项的键和对象的值。例如:
result = {
1: [
{name: 'First', parent: 1, delta: 2},
{name: 'Second', parent: 1, delta: 1}
],
2: [
{name: 'Third', parent: 2, delta: 1}
]
}
我可以使用forEach 或嵌套循环来做到这一点,但我想知道是否有办法使用 ES6 语法来更简洁/内联,这将允许我在 @987654325 上进行排序等操作@等
【问题讨论】:
-
这叫做“分组”。
-
在决定使用哪种方法时,您可能会consider the performance 考虑不同的方法,并认为更少的代码本身很少是使用特定算法的好理由。普通的 if..else 方法比使用 spread 和 concat 的方法快近 10 倍,是 concat 方法的两倍。而且您可能还认为 if..else 对于没有经验的编码人员(他们最有可能执行此类任务)来说也更容易阅读和维护。
标签: javascript arrays typescript object