【发布时间】:2021-04-30 09:59:26
【问题描述】:
我正在尝试转换名称之间带有点的字符串数组。我想制作一个像const out 这样的对象数组。我尝试通过reduceRight来实现,但是我不知道如何组合字段。
我的代码:
const input = ['apples', 'bananas.kivi.grape', 'bananas.orange', 'bananas.strawberry'];
const res = input.map((item) => {
const splInp = item.split('.');
return splInp.reduceRight((acc, item) => {
if (Object.keys(acc).length !== 0) {
return {
children: [acc],
"name": item
};
} else {
return {
"name": item
};
}
}, []/* as any*/);
});
console.log(res);
期望的输出:
const out = [
{ name: 'apples' },
{
name: 'bananas',
children: [
{
name: 'kivi',
children: [
{
name: 'grape',
},
],
},
{ name: 'orange' },
{ name: 'strawberry' },
],
},
];
【问题讨论】:
标签: javascript arrays string performance