把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; } }
本文由用戶 jsopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!