1 遍历数组一般用for循环
ES5得话还可以应用forEach,ES5具备遍历数组作用的也有map、filter、some、every、reduce、reduceRight等,只不过是她们的回到結果不一样。可是应用foreach遍历数组得话,应用break不可以终断循环系统,应用return也不可以回到到表层涵数。
Array.prototype.method=function(){
console.log(this.length);
}
var myArray=[1,2,4,5,6,7]
myArray.name="数组"
for (var index in myArray) {
console.log(myArray[index]);
}
2 for in遍历数组的问题
1.index数据库索引为字符串数组型数据,不可以立即开展几何图形计算
2.解析xml次序有可能并不是依照具体数组的內部次序
3.应用for in会遍历数组全部的可枚举类型特性,包含原形。比如上栗的原形方式method和name特性
因此 for in更合适遍历对象,不必应用for in遍历数组。
那麼除开应用for循环,怎样更简易的恰当的遍历数组做到大家的期待呢(即不解析xmlmethod和name),ES6中的for of更胜一筹.
Array.prototype.method=function(){
console.log(this.length);
}
var myArray=[1,2,4,5,6,7]
myArray.name="数组";
for (var value of myArray) {
console.log(value);
}
for in解析xml的是数组的数据库索引(即键名),而for of解析xml的是数组原素值。
for of解析xml的仅仅数组内的原素,而不包括数组的原形特性method和数据库索引name
3 遍历对象
遍历对象 一般用for in来遍历对象的键名
Object.prototype.method=function(){
console.log(this);
}
var myObject={
a:1,
b:2,
c:3
}
for (var key in myObject) {
console.log(key);
}
for in 能够解析xml到myObject的原形方式method,假如不愿解析xml原形方式和特性得话,能够在循环系统內部分辨一下,hasOwnPropery方式能够分辨某特性是不是该目标的案例特性
for (var key in myObject) {
if(myObject.hasOwnProperty(key)){
console.log(key);
}
}
一样能够根据ES5的Object.keys(myObject)获得目标的案例特性构成的数组,不包括原形方式和特性
Object.prototype.method=function(){
console.log(this);
}
var myObject={
a:1,
b:2,唐山网站制作公司
c:3
}
for..of可用解析xml数/数组目标/字符串数组/map/set等有着迭代器目标的结合.可是不可以遍历对象,由于沒有迭代器目标.与forEach()不一样的是,它能够恰当回应break、continue和return句子
for-of循环系统不兼容一般目标,但假如你要迭代更新一个目标的特性,你能用for-in循环系统(这也是它的做好本职工作)或內建的Object.keys()方式:
for (var key of Object.keys(someObject)) {