数组遍历的方法(loop)

150 阅读1分钟

总结遍历数组的方法

let arr=[1,3,6,8];
  1. 方法1:
for(let i=0,len=arr.length;i<len;i++){
    console.log(arr[i]);
}
  1. forEach
arr.forEach((item,index,array)=>{
    console.log(item);
})
  1. map
arr.map((item,index,array)=>{
    return item
})
  1. for in
for(i in arr){
    console.log(1);//0,1,2... 数组下标
}
  1. for of
for(item of arr){
    console.log(item);//1,3,6...
}
for(item of arr.values()){
    console.log(item);//1,3,6...
}
for(key of arr.keys()){
    console.log(key);//0,1,2... 
}
for(entry of arr.entries()){
    console.log(entry);//[0,1],[1,3],[2,6],...
}
  1. iterator (next()方法 两个属性 done, value)
1.values
var val=arr.values();
var values;
while(!(values=val.next()).done){
   console.log( values.value);//1,3,6...
}
2.keys
var key=arr.keys();
var keys;
while(!(keys=key.next()).done){
    console.log(keys.value);//0,1,2...
}
3.entries
var entry=arr.entries();
var entries;
while(!(entries=entry.next()).done){
    console.log(entries.value);//[0,1],[1,3],...
}
  1. Array-Like
1. use spread syntax (...);
let arr=[...NodeList];
2.Array.form();
var arr=Array.form(NodeList);
3.slice();
let arr=Arrya.prototype.slice().call(NodeList);;
4.forEach;
Array.prototype.forEach.call(NodeList,(item,index,arr)=>{

});
5.for of

for... in /for ... of 区别

参考一篇博客https://www.zhangxinxu.com/wordpress/2018/08/for-in-es6-for-of/
博客的总结语:对于纯对象的遍历for..in要厉害一些;对于数组遍历,如果不需要知道索引,for..of迭代更合适,因为还可以中断;如果需要知道索引,则forEach()更合适;对于其他字符串,类数组,类型数组的迭代,for..of优势非常明显。