把JavaScript中的伪数组转换为真数组详解编程语言

在 JavaScript 中, 函数中的隐藏变量 arguments 和用 getElementsByTagName 获得的元素集合(NodeList)都不是真正的数组,不能使用 push 等方法,在有这种需要的时候只能先转换为真正的数组。

对于 arguments,可以使用 Array.prototype.slice.call(arguments); 来达到转换的目的,但对于 NodeList 则不行了,其在 IE8 及以下将会报错,只能说其 JS 引擎有所限制。

因此,如果需要把 NodeList 转换为真正的数组,则需要做下兼容处理。

function realArray(c) { 
    try { 
        return Array.prototype.slice.call(c); 
    } catch (e) { 
        var ret = [], i = 0, len = c.length; 
        for (; i < len; i++) { 
            ret[i] = (c[i]); 
        } 
        return ret; 
    } 
}

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/10026.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论