实现遍历不规则多维数组的方法,需要使用递归函数。递归函数是指在函数内部调用自身的函数,通过递归可以遍历多维数组中的每一个元素。下面是实现该方法的完整攻略。
步骤一:定义递归函数
首先需要定义一个递归函数,该函数可以遍历多维数组的每一项,并且判断该项是否为数组类型。如果该项是数组类型,则继续递归调用该函数。
function traverseArray(arr) {
for (let i = 0; i < arr.length; i++) {
const val = arr[i];
if (Array.isArray(val)) {
traverseArray(val);
} else {
// 遍历到非数组元素,做一些处理
}
}
}
步骤二:遍历多维数组
在遍历多维数组时,调用上面定义的递归函数,并且对遍历到的每一个非数组元素进行处理。
const irregularArr = [1, [2, 3], [4, [5, 6], 7], 8];
traverseArray(irregularArr);
示例一:打印出多维数组中的每一个元素
function traverseArray(arr) {
for (let i = 0; i < arr.length; i++) {
const val = arr[i];
if (Array.isArray(val)) {
traverseArray(val);
} else {
console.log(val);
}
}
}
const irregularArr = [1, [2, 3], [4, [5, 6], 7], 8];
traverseArray(irregularArr);
// 输出结果:1 2 3 4 5 6 7 8
示例二:将多维数组转换为一维数组
function traverseArray(arr, result) {
result = result || [];
for (let i = 0; i < arr.length; i++) {
const val = arr[i];
if (Array.isArray(val)) {
traverseArray(val, result);
} else {
result.push(val);
}
}
return result;
}
const irregularArr = [1, [2, 3], [4, [5, 6], 7], 8];
const flattenArr = traverseArray(irregularArr, []);
console.log(flattenArr);
// 输出结果:[1, 2, 3, 4, 5, 6, 7, 8]
在上述示例中,traverseArray
函数新增了第二个参数 result
,用于存储遍历到的非数组元素。在递归调用时传递 result
变量,对于每一个非数组元素通过 push
方法将其添加到 result
中。最终返回 result
。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS实现遍历不规则多维数组的方法 - Python技术站