DFS 如何处理 javascript 中的嵌套数组

how does DFS work on nested arrays in javascript

谁能解释一下 DFS 如何处理嵌套数组。 我指的是所有 wiki 和 stackover 资源,但我不太明白如何使用 DFS 在 arry 上进行递归搜索,将其视为我的数组:

array = ["abc","abc2","abc22"];
array[0] = ["test","test1","test2"];
array[0][0] = ["22","33","333"];
array[0][1] = ["we","we2","we3"];
array[0][1][2] = ["soon","soon2","soon3"];
array[1] = ["get"];
array[1][0] ="get2";
array[2] = ["set","set2","set3"];
array[2][0] = "ready";
array[2][1] = ["123","334"];
array[2][2] ="cry";

https://jsfiddle.net/fmbw0eth/7/

我们如何遍历数组及其子数组中的每个元素等等.. 所以到目前为止我有这个:

array.map(function(n,i){
  if (Array.isArray(n)) {
  n.map(function(n,i){
   // and keep checking for arrays and when reached at the bottom ,
   // somefunction(n);
})
}else {
someFucntion(n);
}

})

这是 DFS 的正确方法,还是有更好的递归遍历数组的方法?

DFS 用于图或树。您正在使用的是一个数组。如果要访问所有可能的嵌套数组及其索引,可以使用递归来遍历数组元素。

var array;
array = ["abc","abc2","abc22"];
array[0] = ["test","test1","test2"];
array[0][0] = ["22","33","333"];
array[0][1] = ["we","we2","we3"];
array[0][1][2] = ["soon","soon2","soon3"];
array[1] = ["get"];
array[1][0] ="get2";
array[2] = ["set","set2","set3"];
array[2][0] = "ready";
array[2][1] = ["123","334"];
array[2][2] ="cry";

function getAllNestedElements(arr) {
 var result = [];
    for(var i=0; i<arr.length; i++) {
     if (Array.isArray(arr[i])) {
         result = result.concat(getAllNestedElements(arr[i]));
        }
        else {
         result.push(arr[i]);
        }
    }
    //console.log(result);
    return result;
}

console.log(getAllNestedElements(array));