zoukankan      html  css  js  c++  java
  • for in //for of //forEach //map三种对比

    遍历Array可以采用下标循环,遍历MapSet就无法使用下标。为了统一集合类型,ES6标准引入了新的iterable类型,ArrayMapSet都属于iterable类型。

    具有iterable类型的集合可以通过新的for ... of循环来遍历。


    <script>
    【键-->键值】
    【key-->value】
    var arr=[
    {
    name : '余佳品',
    age : "26"
    },
    {
    name : '增利',
    age : "25"
    },
    ]
    /*for in 是es5的只能拿到下标(键值)for ... in循环由于历史遗留问题,它遍历的实际上是对象的属性名称。一个Array数组实际上也是一个对象,它的每个元素的索引被视为一个属性*/
    for(item in arr){
    console.log(item)//0 1 下标
    }
    /*for ... of它只循环集合本身的元素:相当于循环的键值value*/
        for(item of arr){
    console.log(item)//{name: "余佳品", age: "26"} {name: "增利", age: "25"}
    }


    /*当然最好用的还是这个,不光可以循环键还可以循环键值 最推荐,接受三个参数,第一个是value键值 第二个是key键,第三个元素是数组本身*/

    arr.forEach(function (element, index, array) {
    console.log(element,'****p1') //键值 {name: "余佳品", age: "26"}age: "26"name: "余佳品"__proto__: Object "****p1"
    console.log(index,'****p2') //0 1 "****p2"
    console.log(array,'****p3')//(2) [{…}, {…}] "****p3" 数组自己本身
    })
    </script>

    还有一种方法是array.map方法
    const array = [1, 3, 6, 9];
    const newArray = array.map(function (value) {
      return value + 1;
    });
    console.log(newArray);
    console.log(array);

    结果:

    [2, 4, 7, 10]

    [1, 3, 6, 9]

    1、.map()方法使用return,进行回调;其他方法可不需要。

    2、.map()方法直接对数组的每个元素进行操作,返回相同数组长度的数组;其他方法可扩展数组的长度。

    Arraymap()filter()方法,可是Object没有这些方法,注意区别


    参考:廖雪峰的官方网站 https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/00143450082788640f82a480be8481a8ce8272951a40970000
  • 相关阅读:
    【已解决】Android ADT中增大AVD内存后无法启动:emulator failed to allocate memory
    XE10 塔建 Android 开发环境 (已测试通过)
    Erstudio8.0怎么用?Erstudio8.0汉化版详细使用教程
    Excel 信息对比_数组版
    百万级数据查询优化(数据库)
    sql查询重复记录、删除重复记录方法大全
    JS和JSON的区别
    JS中字符串的true转化为boolean类型的true
    关于HTTP协议,一篇就够了
    关于JS的prototype
  • 原文地址:https://www.cnblogs.com/myfirstboke/p/9150379.html
Copyright © 2011-2022 走看看