簡體   English   中英

將平面數組轉換為嵌套的父子格式

[英]Convert flat array to nested parent-child format

目前,我有以下格式的數組:

[{
    key: "a"
}, {
    key: "b"
}, {
    key: "c"
}, {
    key: "d"
}, {
    key: "e"
}]

數組中的每個元素都是其旁邊的元素的父元素。

需要將其轉換為以下格式:

[{
    key: "a",
    Nodes: [{
        key: "b",
        Nodes: [{
            key: "c",
            Nodes: [{
                key: "d",
                Nodes: [{
                    key: "e"
                }]
            }]
        }]
    }]
}]

我已經實現了,但是我實現的邏輯很長,現在我想優化代碼。

所以我想知道最優化的方法

使用Array#reduceRight可簡化此操作:

 const array = [{ key: "a" }, { key: "b" }, { key: "c" }, { key: "d" }, { key: "e" }]; const nested = array.reduceRight((Nodes, obj) => { if (Nodes) { return [Object.assign({}, obj, { Nodes })]; } else { return [obj]; } }, null); console.log(nested); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM