如何查找JavaScript多维数组中元素13的索引?访问返回undefined
如何在多维数组中查找元素13的索引?
首先纠正你直接访问的错误:元素13的正确索引路径是myArray[3][1][0],拆解来看:
myArray[3]指向数组里的第四个元素(数组索引从0开始):[[10, 11, 12], [13, 14]]myArray[3][1]是这个嵌套数组的第二个子数组:[13, 14]myArray[3][1][0]就是这个子数组的第一个元素,也就是你要找的13
如果需要通用的查找方法(不确定元素位置时),可以用递归函数遍历多维数组,记录完整的索引路径:
function findElementIndex(arr, target) { for (let i = 0; i < arr.length; i++) { if (arr[i] === target) { return [i]; } else if (Array.isArray(arr[i])) { const nestedPath = findElementIndex(arr[i], target); if (nestedPath) { return [i, ...nestedPath]; } } } return null; // 没找到目标元素时返回null } // 调用示例 const indexPath = findElementIndex(myArray, 13); console.log(indexPath); // 输出 [3, 1, 0]
这个函数的逻辑:
- 遍历当前数组的每个元素,若匹配目标则返回当前索引
- 若遇到子数组,递归进入子数组查找
- 递归找到路径后,将当前层级的索引拼接到路径最前面,返回完整的索引序列
- 遍历完所有元素仍未找到时,返回null
内容的提问来源于stack exchange,提问作者impeR
相关产品推荐
相关产品推荐

