我想在JavaScript中创建一个方法,它可以使用树形结构生成包含非随机和非重复数字的数组。
假设方法名为permutation(),我只是简单地使用
permutation(3)我将得到一个可以迭代的数组,每个数组都是
012 021 120 102 201 210如果我将数字3改为5,它将生成一个数组
012345 012354 etc...然后我想我可以使用树形结构来构建这样的数组:
root: 0 1 2
↓ ↓ ↓ ↓ ↓ ↓
depth1: 1 2 0 2 1 0
↓ ↓ ↓ ↓ ↓ ↓
depth2: 2 1 1 0 0 1然后,我只需遍历所有节点即可得到结果。
当数量增加时也是如此
root: 0 1 2 3 4 5 6....
↓ ↓ ↓ ↓ ↓ ↓
depth1: 1 2 3 4 5 6
etc....问题是,我不知道如何在JavaScript中构建这样的树?我不知道这些问题叫什么名字。
发布于 2019-06-05 15:53:40
您可以获取该数组,并为每个剩余项获得一个子树。
function createTree(array) {
return array.map((v, i, a) => array.length === 1
? [v]
: [v, createTree([...a.slice(0, i), ...a.slice(i + 1)])]
);
}
var result = createTree([0, 1, 2]);
console.log(result);.as-console-wrapper { max-height: 100% !important; top: 0; }
https://stackoverflow.com/questions/56456185
复制相似问题