Javascript 给定一个索引数组,从嵌套数组中获取适当的项

Javascript 给定一个索引数组,从嵌套数组中获取适当的项,javascript,arrays,recursion,Javascript,Arrays,Recursion,如果我有这样一个数组: 让arr=[ [], [], [ 1、2、[“a”] ] ] 我想从给定索引数组的数组中获取一个项 以下是一个例子: 让arr=[ [], [], [ 1、2、[“a”] ] ] 函数findByIndex(arr,索引){ //代码在这里 } findByIndex(arr[2,2,0]) //返回'arr[2][2][0]`即“a” 如何执行此操作?您可以创建一个递归函数,如果索引长度为1,则从arr返回相应的元素。否则,使用索引的0索引处的元素从arr获取第一个

如果我有这样一个数组:

让arr=[
[],
[],
[
1、2、[“a”]
]
]
我想从给定索引数组的数组中获取一个项

以下是一个例子:

让arr=[
[],
[],
[
1、2、[“a”]
]
]
函数findByIndex(arr,索引){
//代码在这里
}
findByIndex(arr[2,2,0])
//返回'arr[2][2][0]`即“a”

如何执行此操作?

您可以创建一个递归函数,如果索引长度为1,则从
arr
返回相应的
元素。否则,使用
索引的0索引处的元素从arr获取第一个元素。然后使用shift删除已使用的索引,并使用新值调用相同的函数

让arr=[
[],
[],
[
1、2、[“a”]
]
]
函数findByIndex(arr,索引){
如果(index.length==1){
返回arr[索引[0]]
}否则{
const newArr=arr[index[0]];
指数shift();
返回findByIndex(newArr,索引)
}
}
console.log(findByIndex(arr[2,2,0])
您可以调用索引数组从事件数组中获取每个索引,同时将
acc
更新为该索引的值,最终得到最终值:

const arr=[]、[]、[1、2、[“a”]];
函数findByIndex(arr,索引){
收益指数减少((acc,i)=>acc[i],arr);
}

log(findByIndex(arr[2,2,0])使用
Array.prototype.reduce()
沿着作为reduce调用的第二个参数提供的嵌套数组(或对象)的索引链走:
让arr=[]、[]、[1,2、[“a”]];
设res=[2,2,0]。reduce((a,c)=>
a[c],arr);

控制台日志(res)
你尝试过什么吗?
arr[2][2][0]
返回
“a”
,对吗@Mamun?我正在尝试。。。