itoof.com 2023-02-08 08:18 采纳率: 0%
浏览 31

关于#算法#的问题:我采用递归只能得到 第一层p_id 的数据

img

我采用递归只能得到 第一层p_id 的数据,不是全部的;

const test_list = [
    {
        id: 1,,
        p_id: 0,
        name: 'a',
    },
    {
        id: 2,
        p_id: 0,
        name: 'b',
    },
    {
        id: 3,
        p_id: 0,
        name: 'c',
    },
    {
        id: 4,
        p_id: 1,
        name: 'a_1',
    },
    {
        id: 5,
        p_id: 1,
        name: 'a_2',
    },
    {
        id: 6,
        p_id: 3,
        name: 'c_1',
    },
    {
        id: 7,
        p_id: 1,
        name: 'a_3',
    },
    {
        id: 8,
        p_id: 5,
        name: 'a_2_1',
    },
    {
        id: 9,
        p_id: 4,
        name: 'a_1_2',
    },
    {
        id: 10,
        p_id: 4,
        name: 'a_1_3',
    },
]
  • 写回答

1条回答 默认 最新

  • 关注

    img

    
    ```javascript
    const test_list = [
        {
            id: 1,
            p_id: 0,
            name: 'a',
        },
        {
            id: 2,
            p_id: 0,
            name: 'b',
        },
        {
            id: 3,
            p_id: 0,
            name: 'c',
        },
        {
            id: 4,
            p_id: 1,
            name: 'a_1',
        },
        {
            id: 5,
            p_id: 1,
            name: 'a_2',
        },
        {
            id: 6,
            p_id: 3,
            name: 'c_1',
        },
        {
            id: 7,
            p_id: 1,
            name: 'a_3',
        },
        {
            id: 8,
            p_id: 5,
            name: 'a_2_1',
        },
        {
            id: 9,
            p_id: 4,
            name: 'a_1_2',
        },
        {
            id: 10,
            p_id: 4,
            name: 'a_1_3',
        },
    ];
    let obj = {}
    for (let i = 0; i < test_list.length; i++) {
        if (Object.prototype.toString.call(obj[test_list[i].p_id]) === '[object Array]') {
            console.log(test_list[i].id, obj[test_list[i].p_id])
            obj[test_list[i].p_id].push(test_list[i].id)
        } else {
            obj[test_list[i].p_id] = [];
            obj[test_list[i].p_id].push(test_list[i].id)
        }
    }
    console.log(obj)
    
    
    
    
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 2月8日