美文网首页
遍历方式盘点

遍历方式盘点

作者: 静候那一米阳光 | 来源:发表于2018-06-07 20:09 被阅读0次

Array 数组遍历

while

let arr=[4,3,2,1];
let len=arr.length;
let i=0;
while(i<len){
    console.log(i,arr[i++]);
}

for

let arr=[4,3,2,1];
for(let i=0,len=arr.length;i<len;i++){
    console.log(i,arr[i]);
}

forEach

let arr=[4,3,2,1];
arr.forEach((item,i)=>console.log(i,item));

for...in

let arr=[4,3,2,1];
for(let i in arr){console.log(i,arr[i])}

for...of

let arr=[4,3,2,1];
for(let item of arr){console.log(item)}

map 等...严格来说不算遍历了

let arr=[4,3,2,1];
arr.map((item,index)=>console.log(index,item))

Object 对象遍历

for...in

for...in语句以任意顺序遍历一个对象的可枚举属性。对于每个不同的属性,语句都会被执行。

let obj={a:4,b:3,c:2,d:1};
for(let i in obj){console.log(i,obj[i])}

Object.keys/Object.values()/Object.entries()

let obj={a:4,b:3,c:2,d:1};
Object.keys(obj) //["a", "b", "c", "d"]
Object.values(obj) //[4, 3, 2, 1]
Object.entries(obj) //[["a", 4],["b", 3],["c", 2],["d", 1]]

对于数组for of/for in

Object.prototype.objCustom = function() {}; 
Array.prototype.arrCustom = function() {};

let iterable = [3, 5, 7];
iterable.foo = 'hello';

for (let i in iterable) {
  console.log(i); // logs 0, 1, 2, "foo", "arrCustom", "objCustom"
}

for (let i in iterable) {
  if (iterable.hasOwnProperty(i)) {
    console.log(i); // logs 0, 1, 2, "foo"
  }
}

for (let i of iterable) {
  console.log(i); // logs 3, 5, 7
}

相关文章

网友评论

      本文标题:遍历方式盘点

      本文链接:https://www.haomeiwen.com/subject/mtjnsftx.html