首页 > 解决方案 > 递归函数返回空数组

问题描述

此代码旨在将所有子元素及其子元素放入一个数组中。但是它返回一堆空数组。

function get_independent_elements_from(element) {

    var independent_elements = [];

    if (element.hasChildNodes()) {
        var children = element.children;

        for (let child of children) {
            independent_elements = independent_elements.concat(get_independent_elements_from(child));
        }
    } else {
        independent_elements.push(element);
    }

    return independent_elements;
}

标签: javascriptrecursion

解决方案


如果元素是这样的:

<p>hello world</p>

element.hasChildNodes() 将返回 ture,但 element.children 返回一个空的 HTMLCollection。

您可以更改 if 条件以进行尝试。

if (element.children.length) { xxx }

谢谢你给我建议或意见。


推荐阅读