文章内容输出来源:拉勾教育 大前端高薪训练营

迭代方法

  • map
    对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。

    代码如下(示例):

    const map = (array, fn) => {let results = [] for (const value of array) { results.push(fn(value)) }return results
    }
    let numbers = [1, 2, 3, 4];
    let mapResult = map(numbers, (v) => v * v);
    console.log(mapResult); // [1, 4, 9, 16]
    
  • every
    对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true。

    代码如下(示例):

    const every = (array, fn) => {let result = true for (const value of array) { result = fn(value) if (!result) { break } }return result
    }
    let numbers = [1, 2, 3, 4];
    let flag= every (numbers, (v) => v > 2);
    console.log(flag); // false
    
  • some
    对数组中的每一项运行给定函数,如果该函数对任一项都返回true,则返回true。

    代码如下(示例):

    const some = (array, fn) => { let result = false for (const value of array) { result = fn(value) if (result) { break } }return result
    }
    let numbers = [1, 2, 3, 4];
    let flag= some (numbers, (v) => v > 2);
    console.log(flag); // true
    

归并数组方法

reduce()和reduceRight()

  • 相同点
    1、都会迭代数组的所有项,然后构建一个最终返回的值。
    2、都接收两个参数:一个在每一项上调用的函数和(可选的)作为归并基础的初始值。
    3、传入的函数接收4个参数

    Accumulator (acc):累计器
    Current Value (cur):当前值
    Current Index (idx):当前索引
    Source Array (src):源数组

  • 不同点
    reduce():从数组的第一项开始,逐个遍历到最后。
    reduceRight():从数组的最后一项开始,向前遍历到第一项。

  • reduce

    代码如下(示例):

    let values = [1, 3, 5, 7, 9];
    let sum = values.reduce(function (acc, cur, idx, src) {// 1、acc = 1, cur = 3, idx = 1// 2、acc = 4, cur = 5, idx = 2// 3、acc = 9, cur = 7, idx = 3// 4、acc = 16, cur = 9, idx = 4// 5、acc = 25, cur 没有下一项, 因此结束,所以最后 sum = 25return acc + cur;
    });
    console.log(sum); // 25
    
  • reduceRight

    代码如下(示例):

    let values = [1, 3, 5, 7, 9];
    let sum = values.reduceRight(function (acc, cur, idx, src) {// 1、acc = 9, cur = 7, idx = 3// 2、acc = 16, cur = 5, idx = 2// 3、acc = 21, cur = 3, idx = 1// 4、acc = 24, cur = 1, idx = 0// 5、acc = 25, cur 没有上一项, 因此结束,所以最后 sum = 25return acc + cur;
    });
    console.log(sum); // 25
    
  • 总结

    1、传入函数返回的任何值都会作为第一个参数自动传给下一项。

    2、 第一次迭代发生在数组的第二项上,因此第一个参数是数组的第一项,第二个参数就是数组的第二项。

  • 注意

    reduce 传入的函数还有一个可选参数 initialValue,该参数将作为第一次调用回调函数时的第一个参数的值。如果没有提供 initialValue,则将使用数组中的第一个元素。

重排序方法

  • sort
    字符串根据ASCII码进行排序 Array的sort()方法默认把所有元素先转换为String再排序。

    代码如下(示例):

    let arr = [10, 20, 1, 2];
    arr.sort( (x, y)  => {return x - y;  
    });
    console.log(arr); // [1, 2, 10, 20]
    

查找方法

  • find
    用于找出第一个符合条件的数组成员。它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员。如果没有符合条件的成员,则返回undefined

    代码如下(示例):

    // 找到第一个符合条件的元素,返回该成员
    let arr = [-5, 4, 1, 2];
    let result = arr.find( (n) => n < 0);
    console.log(result ); // -5// 没有找到符合条件的元素,返回undefined
    let values= [3, 4, 1, 2];
    let num= values.find( (n) => n < 0);
    console.log(num); // undefined
    
  • findIndex
    返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1。
    代码如下(示例):

    let values = [1, 5, 10, 15]
    let index = values.findIndex(function(value, index, arr) {return value > 9;
    })
    console.log(index) // 2
    

数组(Array)的常用方法相关推荐

  1. js数组array的常用方法

    数组array 方法1: slice[start,end]:返回从原数组中指定开始下标到结束下标之间的项组成的新数组(原数组不变) 1个参数:n,即n到末尾的所有 2个参数:[start,end] v ...

  2. Js Array数组ES5/ES6常用方法

    Js Array数组ES5/ES6常用方法 1.栈方法(先进后出) push():在数组的最后一项后追加值(参数:可以为多个值或数组) 返回:数组的长度,改变了原数组. var a=[1,2,3] a ...

  3. js 加总数组中某一列_JS数组求和的常用方法实例小结

    本文实例总结了JS数组求和的常用方法.分享给大家供大家参考,具体如下: js数组求和的方法 var array = [1, 2, 3, 4, 5]; var sum = 0; 1.for循环 for ...

  4. Java-杂项:Java数组Array和集合List、Set、Map

    ylbtech-Java-杂项:Java数组Array和集合List.Set.Map 1.返回顶部 1. 之前一直分不清楚java中的array,list.同时对set,map,list的用法彻底迷糊 ...

  5. PIL中的Image和numpy中的数组array相互转换

    PIL中的Image和numpy中的数组array相互转换 array转换成image 1 Image.fromarray(np.uint8(img)) https://www.cnblogs.com ...

  6. 元组Tuple、数组Array、映射Map

    一.元组Tuple 元组Tuple是不同类型的值的聚集,元组的值将单个的值包含在圆括号中来构成,元组可以包含一个不同类型的元素 如 val riple = (100, "Scala" ...

  7. PHP删除数组(array一维)中指定的某个值 (转)

    2019独角兽企业重金招聘Python工程师标准>>> PHP删除数组(array一维)中指定的某个值  PHP删除数组(array一维)中指定的某个值 根据指定的值删除: $stu ...

  8. php 判断类型array,判断一个变量是数组Array类型的方法_javascript技巧

    在很多时候,我们都需要对一个变量进行数组类型的判断.JavaScript中如何判断一个变量是数组Array类型呢?我最近研究了一下,并分享给大家,希望能对大家有所帮助. JavaScript中检测对象 ...

  9. Java ArrayList和Vector、LinkedList与ArrayList、数组(Array)和列表集合(ArrayList)的区别...

    ArrayList和Vector的区别 ArrayList与Vector主要从二方面来说. 一.同步性: Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的. ...

  10. php怎样解析数组,PHP 数组 Array 解析

    官方介绍 PHP 数组实际上是一个有序的映射(map),映射是一种把多个值(values)关联到对应的多个键(keys)的类型.这种映射类型在很多方面做了优化,因此可以把它当成真正的数组(就是上面说的 ...

最新文章

  1. 热门云服务超87GB电子邮箱和密码泄露,黑客已验证大部分数据
  2. 初来乍到,发布一个杀手应用:snap.com的web预览图功能,我给它取名叫“WebSnap”...
  3. 让Visual Studio 2005 Team Foundation Server支持Wss3
  4. cghhhhhhhhhhhhhhhhhh
  5. 【Mysql】之视图操作
  6. 你的搜索其实很糟糕?
  7. JS-节点增删改-document-HTML DOM-事件
  8. Datawhale 零基础入门数据挖掘-Task2 数据分析
  9. 嵌入式linux调试dsi,做嵌入式开发时,你是怎么实现LCD显示的?
  10. 纯javaweb项目整合quarz定时器
  11. 使用thrift做c++,java和python的相互调用 - jinghong - ITeye技术网站
  12. PRML 1.6 信息论
  13. 面向对象编程训练:模拟购物车模块(:3[▓▓]快醒醒开学了
  14. js给数组的每个对象添加字段(字段值对应下标)
  15. python+requests接口测试
  16. 如何制作Mountain Lion系统镜像
  17. 嵌入式系统开发笔记91:认识ARM微控制器架构
  18. 乘基取整法是什么_数学基础——进制转换
  19. 一键清理系统垃圾文件脚本: clean.bat
  20. 机器学习-准确率、召回率、精确率、f1score等

热门文章

  1. 非线性降维-核主成分分析KPCA
  2. redis cluster管理工具redis-trib.rb详解
  3. 用户空间与内核空间数据交换的方式(1)------debugfs
  4. Tensorflow学习—— Estimator简介
  5. 华为机试——质数因子
  6. LeetCode 383. Ransom Note
  7. 【pandas】删除满足条件元素所在的行
  8. 【今日CV 视觉论文速览】 Part2 25 Jan 2019
  9. HDOJ2035 人见人爱A^B
  10. 图片盒子控件 winform 114868210