forEach、for-in、for-of

2018-12-27  本文已影响0人  云上笔记

1.forEach

遍历范围:数组;

回调函数提供三个参数:
当前元素item、当前索引index、当前操作的数组array;注意:不能用break跳出循环,不能用return返回。

var words = ["one", "two", "three", "four"];
words.forEach(function(item, index, array) {
  console.log(item);
  if (item === "two") {
   // 当数组改变时,数组中元素对应的索引也会随之改变
    words.shift();
  }
// console.log(array);
});
// 输出结果为 one two four

2.for-in

for-in 获取的是键名,且键名是字符串,设计的初衷是针对键名为字符串的对象,对数组友好度不高

遍历范围:
var b = {name: "lili", age: 15};
for(let i in b){
  console.log(i); // 此处i为对象中的键 name、age;如果遍历的是数组,则 i 为数组索引
}

3.for-of

for-of获取的是键值,如果要获取数组中的键名,可用Array.keys();
可以使用break、return等关键字处理循环;

遍历范围:
var myarr = ['a', 'b', 'c', 'd'];
for (let a of myarr ) {
  console.log(a); // a b c d
}
var b= {name: 'slili', age: 15};
// 注意:直接遍历对象会报错,可以转换后遍历
for (var key of Object.keys(b)) {
  console.log(key + ": " + b[key]);
}


// 对比
let arr = [3, 5, 7, foo: "hello"];
for (let i in arr) {
  console.log(i); // "0", "1", "2", "foo"
}

for (let i of arr) {
  console.log(i); //  "3", "5", "7"
}
上一篇下一篇

猜你喜欢

热点阅读