我對Dom
for(var i=0; i<collection.length; i++) { //whatever }但是您不能使用push(),splice()或rectress()之類的數組方法來操縱它。
除非您可以,如果您採取下一步並將其轉換為數組。實際上,這是微不足道的:
function collectionToArray(collection) { var ary = []; for(var i=0, len = collection.length; i < len; i++) { ary.push(collection[i]); } return ary; }上面的代碼是完全跨瀏覽器的,並以原始集合作為參數稱為:
var elements = collectionToArray(document.getElementsByTagName('*'));但是,如果您只需要處理支持本地對象原型製作的瀏覽器(Opera,Firefox和Safari 3),那麼您可以簡單地創建Nodelist的ToArray()方法:
NodeList.prototype.toArray = function() { var ary = []; for(var i=0, len = this.length; i < len; i++) { ary.push(this[i]); } return ary; };然後可以將其稱為單個集合的一種方法:
var elements = document.getElementsByTagName('*').toArray();這種轉換有一個明顯的劣勢(但是完成了),那就是由此產生的陣列將不再是節日式的。顯而易見,是的,但有意義,因為它具有兩個含義:
在本示例中,在本示例中,div元素的集合被轉換為數組。不是數組。但是,您可以使用array.from()或差異操作員將集合轉換為數組,然後在結果數組上使用數組方法。
在JavaScript中使用集合而不是javascript?
>一個數組樣對像是一個具有長度屬性並且可以像數組一樣將元素存儲在特定索引上的對象。但是,它沒有諸如push,pop等的數組方法。類似陣列的對象的常見示例是所有函數中可用的參數對象。
中的集合?如果對像是數組,則此方法將返回true,否則為false。沒有內置的方法可以檢查對像是否是集合,但是您可以檢查它是否具有集合的某些屬性,例如長度或物品。
讓收集= document.getElementsbytagname('div');
讓array = [... collection];
不,不,您不能直接在集合上使用foreach,因為集合不是數組。但是,您可以使用array.from()或差異操作員將集合轉換為數組,然後在結果數組上使用foreach。以上是收藏不是數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!