【发布时间】:2020-05-05 12:15:19
【问题描述】:
我正在根据与_(下划线)分开的第一个单词对数据进行排序和分组。所以结果应该返回 3 个组(例如:orders, items and "")。我如何为该空字符串设置一些值(例如:其他)。这里是stackblitz
let rawData = [
{ name : 'orders_list', id : 10},
{ name : 'orders_price', id : 7},
{ name : 'items_list', id : 12 },
{ name : 'items_price', id : 7},
{ name : 'others-list', id : 7},
{ name : 'secondOthers-list', id : 7},
]
let data = rawData.reduce((r, e) => {
let group = e.name.substr(0, e.name.indexOf('_'));
if(!r[group]) {
r[group] = {group, children: [e]}
} else {
r[group].children.push(e);
}
return r;
}, {})
let result = Object.values(data)
console.log(result)
【问题讨论】:
-
你的 stackblitz 运行良好
-
是的,但数组中的第三项返回空字符串。如何用“其他”值替换空字符串?
-
用你预期的输出编写一个单元测试。
标签: angular typescript ecmascript-6 reduce setvalue