JS递归遍历数组获取所有的叶子节点
要递归遍历一个数组以获取所有的叶子节点,你可以使用一个递归函数,该函数对于每个元素都会检查它是否是一个数组。如果不是,它就是叶子节点,如果是,它会递归调用自己来处理这个数组。
以下是一个简单的JavaScript函数,它会返回一个数组的所有叶子节点:
function getLeafNodes(arr) {
let leaves = [];
arr.forEach(item => {
if (Array.isArray(item)) {
// 如果是数组,则递归调用并合并结果
leaves = leaves.concat(getLeafNodes(item));
} else {
// 如果不是数组,则是叶子节点,添加到结果数组中
leaves.push(item);
}
});
return leaves;
}
// 示例使用
const nestedArray = [1, [2, [3, [4]], 5], [6]];
const leafNodes = getLeafNodes(nestedArray);
console.log(leafNodes); // 输出: [1, 2, 3, 4, 5, 6]
这个函数会递归地遍历所有层级的嵌套数组,并收集所有的非数组元素,即叶子节点。
评论已关闭