Javascript-按平面对象嵌套数组

我的对象具有有关表(行和列)位置的元数据

 {a:{row:0,col:0,data:{}},b:{row:1,c:{row:1,col:1,d:{row:2,e:{row:2,data:{}}}

我想对对象进行重新排序以进行迭代并将其呈现为表(我正在使用React,但这并不重要)。
所以我的最终对象应该是这样的:

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

我尝试(很多)使它优雅而美观,但没有成功(循环的结果太多),我相信有一些优雅的方法可以实现。

haixiakeji 回答:Javascript-按平面对象嵌套数组

只需减少条目并以row / col作为嵌套数组的目标即可。

var data = { a: { row: 0,col: 0,data: {} },b: { row: 1,c: { row: 1,col: 1,d: { row: 2,e: { row: 2,data: {} } },result = Object.entries(data).reduce((r,[key,{ row,col,data }]) => {
        r[row] = r[row] || [];
        r[row][col] = { key,data };
        return r;
    },[]);

console.log(result);

本文链接:https://www.f2er.com/3129560.html

大家都在问