1. 递归
function deepLevel(arr) {
if (!Array.isArray(arr)) {
return 0;
}
let result = 1;
for (let i = 0; i < arr.length; i++) {
if (Array.isArray(arr[i])) {
result += deepLevel(arr[i])
}
}
return result;
}
2. JSON.stringify(arr),在判断字符“[”
function deepLevel(arr) {
if (!Array.isArray(arr)) {
return 0;
}
const str = JSON.stringify(arr);
let result = 0;
let counter = 0;
for (let val of str) {
if (val === '[') {
counter++;
result = Math.max(result, counter);
} else if (val === ']') {
counter--;
}
}
return result;
}
3. while循环,判断tempArr.length>0
function deepLevel(arr) {
if (!Array.isArray(arr)) {
return 0;
}
let result = 1;
const tempArr = [{ level: 1, data: arr }];
while (tempArr.length > 0) {
const counter = tempArr.shift();
result = Math.max(result, counter.level);
counter.data.forEach(a => {
if (Array.isArray(a)) {
tempArr.push({ level: counter.level + 1, data: a });
}
})
}
return result;
}