Javascript遍历的详细解释
为了方便示例,现有的数组和JSON对象如下所示无功demoarr = { 'javascript ','gulp ','css3 ','grunt ','jquery ','angular};
无功demoobj = { {
Aaa:'javascript,
Bbb:'gulp,
Ccc:'css3,
Ddd:'grunt,
易:'jquery,
Fff:'angular
};
对于
你可以直接看样品。它用得太多了。这很简单。
(函数(){())
对于(var i = 0,len = demoarr.length;我< len;i++){
如果(i = 2){
函数执行终止;
循环终止;
继续;循环跳过
};
console.log('demo1arr { +我+}:+ demo1arr {我});
}
});
在for循环中,有几个
关于for循环,有几点需要注意。
for循环中的i在循环结束后存在于循环的范围和范围中。为了避免影响范围内的其他变量,它使用函数自执行的方式来隔离它(())。
避免使用对(var i = 0;i < demo1arr.length;i++){ }的方式,长度的数组的每个实例进行了计算,效率低于上述方式。也可以把变量声明在前面的为提高阅读
var i = 0,len = demo1arr.length;
(为了;我;我;+);
有几种方法跳出循环。
返回函数执行终止
终止循环结束。
跳过了继续循环。
完整的例子
在
对于(ARR | obj变量项){ }可以用于遍历数组和对象
当阵列走过,项目代表的指标值,和ARR代表元ARR {项目}对应当前索引值。
当对象是走过,项目所代表的核心价值,和ARR代表值obj {项目}键对应的值。
(函数(){())
对于(VAR我demoarr){
如果(i = 2){
返回;函数执行终止。
循环终止;
跳过循环;
};
console.log('demoarr { +我+}:+ demoarr {我});
}
console.log(' -------------);
});
至于内,有几点需要注意:
在for循环和for循环中,i值在循环结束后保留,因此,通过使用函数自执行来避免。
利用返回,break和continue跳出环与环相一致,但做为回报,我们需要注意在函数体,返回表示该函数的执行被终止,即使外码流传,它将不再继续执行,就终止。环,和下面的代码将继续。
函数RES(){
无功demoarr = { 'javascript ','gulp ','css3 ','grunt ','jquery ','angular};
对于(在demoarr var item){
如果(项目= 2){
返回;
};
console.log(项目,demoarr {项目});
}
console.log('desc ''function水库'); / /不执行
}
foreach
demoarr.foreach(功能(arg){ })
参数精氨酸代表数组每个项的元素,示例如下
demoarr.foreach(function(e){)
如果(E = = 'css3){
返回;循环跳过
错误;
;
};
console.log(E);
})
有一个特别的地方要注意。
foreach不能穿越的对象
foreach不能用在伊江,和Firefox和Chrome实现这个方法
使用foreach不能休息,继续跳出循环,并利用回归的时候,效果与继续在循环一致
做/尽管
函数的实现如下,但要注意的一点是,当使用继续时,如果把+放在后面,那么+ +的值就不会改变,它最终将进入死胡同。
不建议以DO的方式遍历数组。
直接使用…
(函数(){())
var I=0,
demoarr.length len =;
当(i){
如果(i = 2){
函数执行终止;
循环终止;
继续;循环将被跳过,因为在代码后面无法执行,i值不会改变,所以循环将在这里被小心地卡住!!
};
console.log('demoarr { +我+}:+ demoarr {我});
++;
}
console.log(' ------------------------);
});
做…
(函数(){())
var I=0,
demo3arr.length len =;
{做
如果(i = 2){
中断;循环终止
};
console.log('demo2arr { +我+}:+ demo3arr {我});
++;
}(i);
});
每一美元。
美元。每个(demoarr | demoobj,功能(E,ELE))
可用于遍历数组和对象,其中E表示索引值或键值,元素是值。
美元。每个(demoarr,功能(E,ELE){
console.log(E,ELE);
})
输出
0 Javascript
1
2新
3咕噜
4jQuery
5 角
这里有很多地方值得注意。
使用返回或返回true跳过一个循环并继续以下循环
返回false用于终止循环的执行,但不会终止函数执行。
无法使用中断并继续跳过循环。
该循环中输出的值类似于下面的值
console.log(本);
字符串{ 0:
console.log(=元);
/真
关于上面的值,遍历
$(每个函数(E,元素){)
console.log(E,ELE);
})
0
1
2
43
为什么长{ { primitivevalue } }没有走过了突然,答案是Javascript的高级编程,这意味着Javascript的内部属性设置的可枚举对象的数据属性为false。
内部属性视图长度
console.log(Object.getOwnPropertyDescriptor(,'length '));
对象/ {价值:4、可写:假,假,假可枚举:可配置:}
$($)与此不同,但遍历结果是相同的,您可以在测试代码中打印出来。
(从每一美元)。
专门用于遍历domlist
每一个函数(i,元素){
(我console.log,ELE);
/ / console.log(= =元); / /真的
美元(这个)。Html(I);
如果($(this)。Attr('data-item)= =){
$(这)。Html('data-item:做的);
};
})
i:序列值元素:仅是当前遍历的DOM元素。
当前正在遍历DOM元素,无法调用jQuery方法。
($)=($)当前是jQuery对象元素,可以调用jQuery操作的jQuery方法
穿越domlist用
因为domlist不是数组,它是一个对象,只是因为它的核心价值是0, 1, 2…这种感觉类似于数组,但是直接遍历的结果如下所示
无功domlist = document.getelementsbyclassname('its);
对于(在domlist var item){
console.log(项目,':' + domlist {项目});
}
0:
1:
…
5 /长度:
函数(项目){项目:
功能(nameditem){} / / nameditem:
所以当我们遍历domlist使用,我们需要转换成一个数组domlist
VaR既= { }。slice.call(domlist);
对于(RES中的var项){ }
类似的争论对象,对象的功能和性能当然是字符串,可以走过,但因为其他字符串属性可以设置为false,那么数组遍历的结果是一样的,也不必担心这个问题。
小小的补充
如果你发现有人写了一个函数,不要惊慌,不要以为他很高。
+函数(根,结构,未定义){
…
}(窗口、函数(){)
函数(人){ }
})
(())函数(){ }!(自)实现以来,(+)(+)函数(三){ }函数。
以上是本文的全部内容,希望能对大家有所帮助。