我有一个嵌套数组,其中包含多个不同级别的字符串。
let nested = [
"ONE",
[
"TWO",
"THREE",
[
"FOUR",
"FIVE"
],
"SIX",
"SEVEN"
],
[
"HEIGHT"
],
"NINE"
]
我有一个工作函数,可以遍历我的嵌套数组来检索值,使用索引数组作为“指针”:
const getValueByIndexes = (array,indexes) => {
const children = array[indexes[0]];
if(indexes.length > 1){
return getValueByIndexes(children,indexes.slice(1));
}else{
return children;
}
}
let test = getValueByIndexes(nested,[1,2,1]);
console.log(test); //this IS returning "FIVE", as expected
这很有效;但我的问题是,我需要一个函数来构建这些针;基于我的嵌套数组。
我想要的输出是:
[
[0],//ONE
[1,0],//TWO
[1,1],//THREE
[1,2,0],//FOUR
[1,2,1],//FIVE
[1,3],//SIX
[1,4],//SEVEN
[2,0],//HEIGHT
[3],//NINE
]
我怎样才能做到这一点?谢谢
3条答案
按热度按时间zzoitvuj1#
您可以通过检查数组来采用递归方法。
oewdyzsn2#
还可以使用递归生成器函数:
snz8szmq3#
nina scholz和ajax1234的回答都很好。但用一种更通用的方法来处理任意对象及其路径也不难。以下是我经常使用的函数:
因此它解决了这个问题,但对其他对象也很有用:
将产生: