javascript中map(),for of 的区别联系。以及数组的常见方法

1.for of 方法

①可以获取数组元素的键值

无法获取元素的下标(不能记录数组下标)

③可以使用break,return,continue跳出循环

④在循环中执行同步任务,是串行执行(如:循环执行2次耗时为1s的同步任务,总耗时为2s)

    const check = arr => {
      for (let i of arr) {
        if (i.children) {
          return check(i.children);
        } else {
          console.log(i);
        }
      }
    };

    let arr1 = [1, 2, 3, { children: ['子-1', '子-2'] }, 4, 5, 6];

    check(arr1);

 输出结果:

2.forEach()

①三个参数分别是:某项元素的键值,元素的索引,数组本身

②不能使用break,return,continue跳出循环

③没有返回值

可以记录索引

⑤在循环中执行同步任务,任务会被并行执行(类似promise.all),同步任务返回顺序和执行顺序相同(例:循环执行2此耗时为1s的同步任务,总耗时为1s)

    const check = arr => {
      arr.forEach(i => {
        if (i.children) {
          return check(i.children);
        } else {
          console.log(i);
        }
      });
    };

    let arr1 = [1, 2, 3, { children: ['子-1', '子-2'] }, 4, 5, 6];

    check(arr1);

输出: 

3.map()

①三个参数分别是:某项元素的键值,元素的索引,数组本身

不能使用break,return,continue跳出循环

③返回一个新数组

可以记录索引

⑤在循环中执行同步任务,任务会被并行执行(类似promise.all),同步任务返回顺序和执行顺序相同(例:循环执行2此耗时为1s的同步任务,总耗时为1s)

3.Array.from()

该方法可以将两类对象转换成真正的数组:

①类似于数组的对象(操作dom返回的dom集合nodeList,以及函数内部的arguments对象)(本质特征是具有length属性)

②部署了iterator的数据结构(set  map结构。。。)

注意:

①使用拓展运算符也可以将部署了iterator的数据结构转换成数组   var array = [...set]

4.Array.of()

构造函数Array()会在参数个数不同时,发生重载:

当只有一个参数时,该参数指定的是数组的长度。  Array(3)

不少于两个参数时,才会返回又参数组成的新数组

Array函数返回的都是又参数组成的新数组,没有参数时候,就返回[ ]

5.Array.some((item,index,array))    item:当前元素,index: 元素索引 array:当前元素属于的数组对象

some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。

some() 方法会依次执行数组的每个元素:

  • 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
  • 如果没有满足条件的元素,则返回false。

 some() 不会对空数组进行检测。

some() 不会改变原始数组。

6.Array.every((item,index,array))    item:当前元素,index: 元素索引 array:当前元素属于的数组对象

every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。

every() 方法使用指定函数检测数组中的所有元素:

  • 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
  • 如果所有元素都满足条件,则返回 true。

 every() 不会对空数组进行检测。

 every() 不会改变原始数组。

7.Array.filter(item,index,array)    item:当前元素,index: 元素索引 array:当前元素属于的数组对象

filter() 方法创建一个新的数组,返回数组中的满足条件的所有元素集合

 filter() 不会对空数组进行检测。

 filter() 不会改变原始数组。

8.array.find((item,index,array))    array.findIndex()

find()函数用来查找目标元素,找到就返回该元素,找不到返回undefined。

findIndex()函数也是查找目标元素,找到就返回元素的位置,找不到就返回-1。

9.array.includes(value,index)  index是搜索的起始位置,第二个参数可以为负数指倒数

includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false。

 

 

 

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值