我对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中文网其他相关文章!