JavaScript 中遍历要领小结

遍历要领小结

经常运用的遍历要领

  • for 遍历
  • forEach(对数组的每一个元素实行一次供应的函数)
  • map(建立一个新数组,其效果是该数组中的每一个元素都挪用一个供应的函数后返回的效果)

for 遍历人人都熟习,所以重点讲一下forEachmap 的区分

  • 雷同点:

    1. 回调函数参数雷同,都自带三个属性:item / index / array
    2. 均不会修正原数组
    3. 第二参数this的指向均指向window(但是运用箭头函数举行修正)
    4. 只能遍历数组
    5. 都不能运用轮回跳出语句 break & continue
  • 不同点:

    • forEach

      1. 返回值为undefined
    • map

      1. 返回值为一个新的数组
      2. 能够链式挪用
        // 链式挪用
        var str = 'abcde';
        // 运用call在字符范例中运用map要领
        Array.prototype.map.call(str, function(x) {   
          return x;
        }).reverse().join('');
        // edcba

其他遍历要领

  • filter (建立一个新数组, 其包括经由过程所供应函数完成的测试的一切元素)
  • find (返回数组中满足供应的测试函数的第一个元素的值。不然返回 undefined)
  • every (测试数组的一切元素是不是都经由过程了指定函数的测试)
  • some (测试是不是至少有一个元素经由过程由供应的函数完成的测试)

【Attention】

filter 将遍历一切的元素

find & some & every 属于「前提中缀」遍历(即当元素满足某一前提是返回boolean)

四个要领都不会对原数组举行修正

ES5 中的for…in 遍历

经常运用于对象key值的遍历

ES6 引入的遍历要领

  • for…of 遍历

    [ 前置学问:for…of 可对具有iterator接口的数据构造举行遍历 ]

    • 原生具有iterator接口的数据构造以下:

      • Array
      • Set
      • Map
      • String
      • TypedArray
      • NodeList 对象
      • 函数的arguments 对象
  • keys( ) / values( ) / entries( )

    经常运用来遍历对象、数组、set、map构造

【番外】

  • 转变原数组的要领
    pop、push、reverse、shift、sort、splice、unshift
  • 不会转变原数组的要领
    concat、join、slice、toString、toLocaleString、indexOf、lastIndexOf
    原文作者:严肃脸
    原文地址: https://segmentfault.com/a/1190000018572743
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞