求教JavaScript dom编程艺术书中的一段代码问题
发布网友
发布时间:2022-04-12 10:14
我来回答
共3个回答
热心网友
时间:2022-04-12 11:44
若假设该函数识别id之后得到3个块元素a,b,c;其中b、c含有所查找classname,那么执行 results[results.length]=elems[i];结果为
1. results[0]=elems[1];
2. results[1]=elems[2];
因为当 for 循环到第一个符合条件的 b 元素时 results 还是空数组,所以 results.length == 0
所以 results[results.length]=elems[i]; 其实就是 results[0]=elems[1];
而当 b 元素被加入数组时 results.length == 1;
所以最后得到的结果是
results = [b, c];
热心网友
时间:2022-04-12 13:02
他写的没问题,空数组length属性等于0。
我一般是喜欢这样写,
results.push(i);
他这样写,可能效率会好一些。push需要一次调用。
热心网友
时间:2022-04-12 14:36
这个问题其实很简单,你只要记住一点,就是数组的长度的位置是没有元素的,如果要增加元素一个元素,刚好就是数组长度的位置
举个例子:
var arr = [];//这个时候arr.length = 0;数组里面没有元素,若果我这个时候要往数组里面加一个元素,如下
arr[0] = 1;//这个时候加了一个元素,arr.length = 1,其实就是在数组的长度的位置在增加(之前的长度还是0,现在的长度是1,如果要在增加一个元素,是不是就是arr[1] = 1)
arr[1] = 1;//类推。。。