美文网首页
2020-10-27 forEach,map,filter,fo

2020-10-27 forEach,map,filter,fo

作者: 路飞戎 | 来源:发表于2020-10-27 10:42 被阅读0次

    forEach

    array.forEach(function(currentValue, index, array){
     //code something  
    });
    
    1. forEach() 方法用于遍历数组的每个元素,并将元素传递给回调函数
    2. 没有返回值(返回undefined)
    3. 基本类型数组,不可改变。引用类型数组(除String类型),可以改变
      使用场景:并不打算改变数据的时候,而只是想用数据做一些事情 ,比如存入数据库或则打印出来。

    map

    array.map(function(currentValue, index, array){
        return func(currentValue);
    });
    
    1. map()用来做一次统一映射
    2. 不改变原数组,生成新的数组,新数组元素个数不变,但是按照一定的条件转换,数组元素发生了变化
      使用场景:适用于你要改变数据值的时候

    filter

    array.filter(function(currentValue, index, array){
        return func(currentValue);
    });
    
    1. filter()用来做一次筛选,把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素
    2. 不改变原数组,生成新数组,新数组元素个数可能发生了改变,但是数组元素不会发生改变
      使用场景:适用于你要过滤数据值的时候

    举例:(数据去重)

     var aa = ['apple', 'strawberry', 'banana', 'pear', 'apple', 'orange', 'orange', 'strawberry'];
     var r = aa.filter(function (element, index, self) {
        return self.indexOf(element) === index;
    }); 
    console.log(r);
    

    for循环

    for 循环的语法如下:

    for (语句 1; 语句 2; 语句 3) {
         要执行的代码块
    }
    

    语句 1 在循环(代码块)开始之前执行。
    语句 2 定义运行循环(代码块)的条件。
    语句 3 会在循环(代码块)每次被执行后执行。

    for (let i=0; i<10; i++) {
         要执行的代码块
    }
    

    for循环类似于forEach,具体区别如下:
    1、for与forEach都可以遍历数组/集合,不过for则在较复杂的循环中效率更高。
    2、forEach不可以删除/修改集合元素,而for可以
    3、forEach和for都可以修改元素里面的属性
    所以相比较下来for循环更为灵活。

    相关文章

      网友评论

          本文标题:2020-10-27 forEach,map,filter,fo

          本文链接:https://www.haomeiwen.com/subject/feitvktx.html