javascript - 有没有办法从嵌套字典中提取二维数组,其长度未知

标签 javascript arrays

我需要从多维字典(输入)中提取长度未知的二维数组(输出),每个字母都是指向下一个字母的指针(字符串ID由大写字母)。因此,我需要构建一个充满一维 ID 的二维数组,我可以用它来获取其他数据,保持这种“每个当前 ID 都是指向下一个 ID 的指针”类型的数据链。

Input: {A:[B,C], B:[D, E], C:[F], D:[], F:[R], E:[]}
Output: [[A,B,D], [A,B,E], [A,C,F,R]]

Schematics:
A->B->D->END; 
A->B->E->END;
A->C->F->R->END;

例如 “房间”->“书架”->“书”->“纸”; “地段”->“汽车”->“手套箱”->“糖果”

最佳答案

let input = {A: ['B', 'C'], B: ['D', 'E'], C: ['F'], D: [], F: ['R'], E: []};
let start = 'A';

let x = k =>
    input[k] && input[k].length ? input[k].map(v => x(v).map(r => [k, ...r])).flat() : [[k]];

let output = x(start);
console.log(output); // [['A', 'B', 'D'], ['A', 'B', 'E'], ['A', 'C', 'F', 'R']];

关于javascript - 有没有办法从嵌套字典中提取二维数组,其长度未知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58701892/

相关文章:

javascript - 从 2 个数组创建新的多维关联数组

javascript - 有选择地交错两个数组

c++ - 如何有效地将 float 别名为命名成员和数组元素?

c - 难以理解 C 中的可变长度数组

c# - 使用 Linq 从数组构建字典

c++ - 如何在 C++ 中访问动态分配的矩阵?

javascript - meteor JS : RegisterHelper to display associated user information

Javascript 奇怪地滞后于在 map 中查找 key

javascript - 如何在express js中的中间件之后渲染不在公共(public)或查看文件夹中的静态文件

javascript - 从嵌套的对象数组中提取所有特定属性