数组循环遍历方法比对

一、JavaScript中循环遍历方法

JS中的引用类型包括:Object/Array/RegExp/Date/基本包装类型(String/Number/Boolean)。其中,遍历继承Object类型的对象的方法主要包括:for..of、for..in、Object.keys、Object.getOwnProperty      遍历Array对象的方法主要包括:for forEach filter map every some  for..in.. for..of..  下面将对这些方法的使用场合、性能等进行详细的总结。

1.遍历对象总结

JS中可以直接用、可访问到的对象属性分为数据属性和访问器属性。数据属性(实际存储属性值的属性)包括:

1.value:属性值 

2.writable:true/false控制是否可被修改

3.enumerable:true/false控制是否可被for in遍历(是否可枚举)

4.configurable: true/false(1)控制属性是否可被delete(2)控制是否可修改前两个特性(3)一旦设为false则是不可逆的

访问器属性(不实际存储数据,专门用于对其他数据/变量的保护)包括:

1.get:在读取属性时调用的函数,默认值为undefined

2.set:在写入属性时调用的函数,默认值为undefined

3.configurable:(1)控制是否可被delete(2)控制是否修改其他属性特性(3)控制是否可以修改为访问器属性

4.enumerable:是否可枚举

1.可枚举|自身|原型属性:for...in...   不能保证属性名按对象原来的顺序输出,注意用于数组时则返回索引号

var obj={a:1,b:2,c:3};

for(var prop in obj){

console.log('obj.'+prop+'='+obj[prop]); //使用变量访问属性

}

2.可枚举|自身属性|返回属性名组成的数组:Object.keys()     不能保证属性名按对象原来的顺序输出

var obj={a:1,b:2,c:3};

console.log(Object.keys(obj)); //输出['a','b','c']

var props=Object.keys(obj);

for(var prop in props){

var inprop=props[prop];

console.log(obj[inprop]); //输出1 2 3

}

var arr=[1,2,3];

console.log(Object.keys(arr));  //输出[0,1,2]

3.可枚举/不可枚举|自身属性 Object.getOwnPropertyNames()  返回自身属性的属性名组成的数组

var obj={a:1,b:2,c:3};

console.log(Object.getOwnPropertyNames(obj)); //输出['a','b','c']

4.es6|可迭代对象(Array/Map/Set/argument)for...of...    输出对象属性值,而非对象key值(属性名)

var obj={a:1,b:2,c:3}; 

for(var value of obj){

console.log(value); //输出1 2 3

}

2.遍历数组总结

1.for语句  

var arr=[1,3,2,4,5];

for(var i=0,len=arr.leng;i

console.log(arr[i]);

}

2.仅数组|每个元素的回调函数  forEach语句    性能比普通for循环弱  让数组中的每一项做一件事(不可用return)

var arr=[1,3,2,4,5];

arr.forEach(function(item,index){

console.log(item);

});

3.map语句    实际效率比forEach弱   通过计算返回一个新数组

var arr=[1,3,2,4,5];

arr.map(function(e,index){

console.log(e);

});

var arr=[1,3,2,4,5];

var newArr=arr.map(function(e,index){

return e*2;

});

console.log(newArr);  //输出[2,6,4,8,10]

数组循环遍历方法比对_第1张图片

4.for...in..   效率最低

5.for...of...    性能好于for...in...但比不上for循坏  可以由break, continue, throw 或return终止。

6.filter   筛选出数组中符合的项组成新数组

数组循环遍历方法比对_第2张图片

7.reduce   让数组中的前项和后项做某种计算,并返回最终累计值

数组循环遍历方法比对_第3张图片

8.every    检查数组中的每一项是否符合条件,全部符合才能返回true

数组循环遍历方法比对_第4张图片

9.some   检查数组中的某些项是否符合条件,有一项符合即返回true

数组循环遍历方法比对_第5张图片

二、Jquery中each的使用

1.$().each()   主要用于处理dom上的对象

 

2.$.each()   主要用于遍历数组

$.each(["aaa","bbb","ccc"],function(index,value){
     alert(i+"..."+value);
});

三、C#中循环遍历

你可能感兴趣的:(JavaScript)