JavaScript中数组的迭代方法:forEach、map、filter、reduce、every、some、for in、for of

JavaScript中有非常多数组迭代方法,这里基本上吧所有的都介绍全了,我项目中比较喜欢的是forEach。

JavaScript中数组的迭代方法:forEach、map、filter、reduce、every、some、for in、for of

  7、for in (for-in循环实际是为循环对象而设计的,for in也可以循环数组,但是不推荐这样使用,

   for–in是用来循环带有字符串key的对象的方法)。

   缺点:只能获得对象的键名,不能直接获取键值。

   var obj = {a:1, b:2, c:3};
   for (var prop in obj) {
    console.log("obj." + prop + " = " + obj[prop]);
   }
   // print: "obj.a = 1" "obj.b = 2" "obj.c = 3"


  8、for of (在 ES6 中引入的 for...of 循环,以替代 for...in 和 forEach() ,并支持新的迭代协议。

   for...of 允许你遍历 Arrays(数组), Strings(字符串), Maps(映射), Sets(集合)

   等可迭代的数据结构等(不包括对象))。

   // 字符串
   let str = "hello";
   for (let s of str) {
    console.log(s); // h e l l o
   }


   // 遍历数组
   let list = [1, 2, 3, 4, 5];
   for (let e of list) {
    console.log(e);
   }
   // print: 1 2 3 4 5


   // 遍历对象
   obj = {a:1, b:2, c:3};
   for (let key of Object.keys(obj)) {
    console.log(key, obj[key]);
   }
   // print: a 1 b 2 c 3
   说明:对于普通的对象,for...in循环可以遍历键名,for...of循环会报错。

   一种解决方法是,使用Object.keys方法将对象的键名生成一个数组,然后遍历这个数组。

 

   // entries (entries() 方法返回一个数组的迭代对象,该对象包含数组的键值对 (key/value)。语法:array.entries())

   IE11 及其更早的浏览器版本不支持 entries 方法

   let arr = ['a', 'b', 'c'];
   for (let pair of arr.entries()) {
    console.log(pair);
   }
   // [0, 'a']
   // [1, 'b']
   // [2, 'c']


---------------------

参考:https://www.cnblogs.com/shuiyi/p/5058524.html

 

 

上一篇:10年前文章_mpc 8313 u-boot 记录


下一篇:4. Go 语言流程控制