Closed vieyahn2017 closed 3 months ago
https://www.cnblogs.com/zhaokunbokeyuan256/p/7449238.html
像操作Array一样操作NodeList
既然NodeList有length,可以for循环索引取值,转换成数组还不是轻而易举?哈哈,最直接的思路是这样的:
var arr = new Array();
var anchors = document.getElementsByTagName("a")
for (var i = 0; i < anchors.length; i++) {
var ele = anchors[i];
arr.push(ele); //arr就是我们要的数组
}
扼要说明一下吧:先new一个Array,遍历NodeList,然后将每一个单独的元素push到数组变量里,最后操作数组变量,over。有没有智商受辱的感觉? 下面是在网上google到的,两行代码就可以将NodeList转换成Array来使用了:
var anchors = document.getElementsByTagName("a");
var arr = Array.prototype.slice.call(anchors); //非ie浏览器正常
slice() 方法可从已有的数组中返回选定的元素。 语法 arrayObject.slice(start,end) 返回值 返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。
测试csdn代码复制
https://blog.csdn.net/xuemanqianshan/article/details/103702218
Sub jackma1()
arr1 = Array(1, 2, 3, 4, 5, 1, 1, 1, 5)
Dim dict1 As Object
Set dict1 = CreateObject("scripting.dictionary")
'把array的element当做key,赋值item为空
For i = LBound(arr1) To UBound(arr1)
dict1(arr1(i)) = ""
Next
'这里就自动对dict 的key 也就是array 自动去重了
For Each j In dict1.keys
Debug.Print j;
Next
'因为给item赋值都是"" 所以这里没东西的
For Each k In dict1.items
Debug.Print k;
Next
End Sub
已经重新记录到【jsup】
如题