0

0

关于JS数组Array方法汇总

一个新手

一个新手

发布时间:2017-10-26 10:50:18

|

2741人浏览过

|

来源于php中文网

原创

1.Array数组的方法
  • mutator方法————"突变方法"会改变数组自身的值;

    GitHub Copilot
    GitHub Copilot

    GitHub AI编程工具,实时编程建议

    下载
  • Accessor方法————"访问方法"不会改变数组自身的值;

  • Iteration方法————"遍历的方法" ;

2.Mutator方法

  • [ ].push作用:将一个或多个元素添加到数组的末尾,传参:(单个或多个数组元素);返回值:新数组的长度;

     //标准用法
     arr.push(el1, el2 ……elN);
     //合并两个数组
     [].push.apply(arr1, arr2)
  • [].pop()作用:删除最后一个元素,传参:无;返回值:删除的元素。

    //标准用法
    let a = [1 ,2 ,3 ];
    a.pop();//3
  • [ ].unshift作用:将一个或多个元素添加到数组的开头,传参:(单个或多个数组元素);返回值:新数组的长度;

     //标准用法
     arr.unshift(el1, el2 ……elN);
  • [].shift()作用:删除第一个元素,传参:无;返回值:删除的元素。

    //标准用法
    let a = [1 ,2 ,3 ];
    a.shift();//1
  • [].reverse()作用:数组元素颠倒位置,传参:无;返回值:颠倒后的数组。

    //标准用法
    arr.reverse()
  • [].splice()作用:数组元素颠倒位置,传参:(索引,删除个数【选】,要添加的元素【选】);返回值:被删除的元素组成的一个数组。

    //标准用法
    array.splice(start)
    array.splice(start, deleteCount) 
    array.splice(start, deleteCount, item1, item2, ...)
  • [].fill()作用:用一个固定值填充一个数组中从起始索引到终止索引内的全部元素,传参:(用来填充数组元素的值,起始索引【选】,终止索引【选】);返回值:修改后的数组。

    //标准用法
    arr.fill(value) 
    arr.fill(value, start) 
    arr.fill(value, start, end)
    //例子
    [1, 2, 3].fill(4)            // [4, 4, 4]
    [1, 2, 3].fill(4, 1)         // [1, 4, 4]
    [1, 2, 3].fill(4, 1, 2)      // [1, 4, 3]
  • [].sort()作用:对数组的元素进行排序,并返回数组,传参:(指定排列顺序的函数【选】);返回值:排列后的数组。

    //标准用法
    arr.sort() 
    arr.sort(compareFunction)
    //例子
    var numbers = [4, 2, 5, 1, 3];
    numbers.sort(function(a, b) {
    return a - b;
    });// [1, 2, 3, 4, 5]

3.Accessor方法

  • [ ].join作用:将数组(或一个类数组对象)的所有元素连接到一个字符串中。,传参:(指定一个字符串来分隔数组的每个元素【选】);返回值:一个所有数组元素连接的字符串;

    //标准用法
    var a = ['Wind', 'Rain', 'Fire'];
    var myVar1 = a.join();      // myVar1的值变为"Wind,Rain,Fire"
    var myVar2 = a.join(', ');  // myVar2的值变为"Wind, Rain, Fire"
  • [ ].concat作用:并两个或多个数组。,传参:(将数组和/或值连接成新数组【选】);返回值:合并后的数组;

    //标准用法
    var alpha = ['a', 'b', 'c'];
    var numeric = [1, 2, 3];
    alpha.concat(numeric);
    //['a', 'b', 'c', 1, 2, 3]
  • [ ].slice作用:方法返回一个从开始到结束(不包括结束)选择的数组的一部分浅拷贝到一个新数组。,传参:(开始索引【选】,结束索引【选】);返回值:截去后的数组;

    //标准用法
    var fruits = ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango'];
    var citrus = fruits.slice(1, 3);
    //['Orange','Lemon'] 
      //类数组转数组
    function list() {
     return [].slice.call(arguments)}
    var list1 = list(1, 2, 3); // [1, 2, 3]
  • [ ].toString作用:返回一个字符串,表示指定的数组及其元素,传参:(无);返回值:转化成的字符串;(=[].join()

    //标准用法
    var monthNames = ['Jan', 'Feb', 'Mar', 'Apr'];
    var myVar = monthNames.toString(); // assigns "Jan,Feb,Mar,Apr" to myVar.
  • [ ].includes作用:判断一个数组是否包含一个指定的值,传参:(要查找的元素);返回值:true或 false;

    //标准用法
    let a = [1, 2, 3];
    a.includes(2); // true 
    a.includes(4); // false
  • [ ].indexOf作用:在数组中可以找到一个给定元素的第一个索引,传参:(要查找的元素);返回值:找不到-1,找得到索引;

    var array = [2, 5, 9];
    array.indexOf(2);     // 0
    array.indexOf(7);     // -1

4.Iteration方法

    • [ ].forEach作用:每个元素执行一次提供的函数,传参:(callback(当前元素,索引,该数组));返回值:无;

       //标准用法
       array.forEach(callback(currentValue, index, array){
       //do something
      }, this)
    • [ ].find作用:返回数组中满足提供的测试函数的第一个元素的值,传参:(callback(当前元素,索引,该数组));返回值:该元素;([].findIndex()返回索引)

       //标准用法
       array. find(callback(currentValue, index, array){
       //do something
      }, this)
    • [ ].filter作用:创建一个新数组, 其包含通过所提供函数实现的测试的所有元素,传参:(callback(当前元素,索引,该数组));返回值:通过测试的元素的集合的数组;

       //标准用法
       let arr = array. filter(callback(currentValue, index, array){
       //do something
       }, this)
    • [ ].map作用:创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。,传参:(callback(当前元素,索引,该数组));返回值:一个新数组,每个元素都是回调函数的结果;

       //标准用法
       var numbers = [1, 4, 9];
       var roots = numbers.map(Math.sqrt);
       // roots的值为[1, 2, 3], numbers的值仍为[1, 4, 9]
    • [ ].every作用:测试数组的所有元素是否都通过了指定函数的测试;传参:(callback(当前元素,索引,该数组));返回值truefalse

         //标准用法
         function isBigEnough(element, index, array) {
          return (element >= 10);}
         var passed = [12, 5, 8, 130, 44].every(isBigEnough);// passed is false
         passed = [12, 54, 18, 130, 44].every(isBigEnough);// passed is true
    • [ ].some作用:测试数组的某些元素是否都通过了指定函数的测试;传参:(callback(当前元素,索引,该数组));返回值truefalse

         //标准用法
         function isBigEnough(element, index, array) {
          return (element >= 10);}
         var passed = [1, 5, 8, 3, 4].some(isBigEnough);// passed is false
         passed = [2, 4, 18, 13, 4].some(isBigEnough);// passed is true
    • [ ].reduce作用:对累加器和数组中的每个元素(从左到右)应用一个函数,将其减少为单个值;传参:(callback(累加器accumulator,当前元素,索引,该数组));返回值:函数累计处理的结果;

         //标准用法
         var total = [0, 1, 2, 3].reduce(function(sum, value) {
          return sum + value;
        }, 0);// total is 6
      
         var flattened = [[0, 1], [2, 3], [4, 5]].reduce(function(a, b) {
          return a.concat(b);}, []);
          // flattened is [0, 1, 2, 3, 4, 5]
    • [ ].entries作用:返回一个新的Array Iterator对象,该对象包含数组中每个索引的键/值对;传参:(无));返回值:一个新的 Array 迭代器对象;

         //标准用法
         var arr = ["a", "b", "c"];
         var iterator = arr.entries();// undefined
         console.log(iterator);// Array Iterator {}
         console.log(iterator.next().value); // [0, "a"]
         console.log(iterator.next().value); // [1, "b"]
         console.log(iterator.next().value); // [2, "c"]
    • [ ].values作用:数组转对象;传参:(无));返回值:一个新的 Array 迭代器对象;

         //标准用法
         let arr = ['w', 'y', 'k', 'o', 'p'];
         let eArr = arr.values();// 您的浏览器必须支持 for..of 循环
         // 以及 let —— 将变量作用域限定在 for 循环中
        for (let letter of eArr) {
               console.log(letter);}

    参考资料:https://developer.mozilla.org...


    1.Array数组的方法
    • mutator方法————"突变方法"会改变数组自身的值;

    • Accessor方法————"访问方法"不会改变数组自身的值;

    • Iteration方法————"遍历的方法" ;

    2.Mutator方法

    • [ ].push作用:将一个或多个元素添加到数组的末尾,传参:(单个或多个数组元素);返回值:新数组的长度;

       //标准用法
       arr.push(el1, el2 ……elN);
       //合并两个数组
       [].push.apply(arr1, arr2)
    • [].pop()作用:删除最后一个元素,传参:无;返回值:删除的元素。

      //标准用法
      let a = [1 ,2 ,3 ];
      a.pop();//3
    • [ ].unshift作用:将一个或多个元素添加到数组的开头,传参:(单个或多个数组元素);返回值:新数组的长度;

       //标准用法
       arr.unshift(el1, el2 ……elN);
    • [].shift()作用:删除第一个元素,传参:无;返回值:删除的元素。

      //标准用法
      let a = [1 ,2 ,3 ];
      a.shift();//1
    • [].reverse()作用:数组元素颠倒位置,传参:无;返回值:颠倒后的数组。

      //标准用法
      arr.reverse()
    • [].splice()作用:数组元素颠倒位置,传参:(索引,删除个数【选】,要添加的元素【选】);返回值:被删除的元素组成的一个数组。

      //标准用法
      array.splice(start)
      array.splice(start, deleteCount) 
      array.splice(start, deleteCount, item1, item2, ...)
    • [].fill()作用:用一个固定值填充一个数组中从起始索引到终止索引内的全部元素,传参:(用来填充数组元素的值,起始索引【选】,终止索引【选】);返回值:修改后的数组。

      //标准用法
      arr.fill(value) 
      arr.fill(value, start) 
      arr.fill(value, start, end)
      //例子
      [1, 2, 3].fill(4)            // [4, 4, 4]
      [1, 2, 3].fill(4, 1)         // [1, 4, 4]
      [1, 2, 3].fill(4, 1, 2)      // [1, 4, 3]
    • [].sort()作用:对数组的元素进行排序,并返回数组,传参:(指定排列顺序的函数【选】);返回值:排列后的数组。

      //标准用法
      arr.sort() 
      arr.sort(compareFunction)
      //例子
      var numbers = [4, 2, 5, 1, 3];
      numbers.sort(function(a, b) {
      return a - b;
      });// [1, 2, 3, 4, 5]

    3.Accessor方法

    • [ ].join作用:将数组(或一个类数组对象)的所有元素连接到一个字符串中。,传参:(指定一个字符串来分隔数组的每个元素【选】);返回值:一个所有数组元素连接的字符串;

      //标准用法
      var a = ['Wind', 'Rain', 'Fire'];
      var myVar1 = a.join();      // myVar1的值变为"Wind,Rain,Fire"
      var myVar2 = a.join(', ');  // myVar2的值变为"Wind, Rain, Fire"
    • [ ].concat作用:并两个或多个数组。,传参:(将数组和/或值连接成新数组【选】);返回值:合并后的数组;

      //标准用法
      var alpha = ['a', 'b', 'c'];
      var numeric = [1, 2, 3];
      alpha.concat(numeric);
      //['a', 'b', 'c', 1, 2, 3]
    • [ ].slice作用:方法返回一个从开始到结束(不包括结束)选择的数组的一部分浅拷贝到一个新数组。,传参:(开始索引【选】,结束索引【选】);返回值:截去后的数组;

      //标准用法
      var fruits = ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango'];
      var citrus = fruits.slice(1, 3);
      //['Orange','Lemon'] 
        //类数组转数组
      function list() {
       return [].slice.call(arguments)}
      var list1 = list(1, 2, 3); // [1, 2, 3]
    • [ ].toString作用:返回一个字符串,表示指定的数组及其元素,传参:(无);返回值:转化成的字符串;(=[].join()

      //标准用法
      var monthNames = ['Jan', 'Feb', 'Mar', 'Apr'];
      var myVar = monthNames.toString(); // assigns "Jan,Feb,Mar,Apr" to myVar.
    • [ ].includes作用:判断一个数组是否包含一个指定的值,传参:(要查找的元素);返回值:true或 false;

      //标准用法
      let a = [1, 2, 3];
      a.includes(2); // true 
      a.includes(4); // false
    • [ ].indexOf作用:在数组中可以找到一个给定元素的第一个索引,传参:(要查找的元素);返回值:找不到-1,找得到索引;

      var array = [2, 5, 9];
      array.indexOf(2);     // 0
      array.indexOf(7);     // -1

    4.Iteration方法

    • [ ].forEach作用:每个元素执行一次提供的函数,传参:(callback(当前元素,索引,该数组));返回值:无;

       //标准用法
       array.forEach(callback(currentValue, index, array){
       //do something
      }, this)
    • [ ].find作用:返回数组中满足提供的测试函数的第一个元素的值,传参:(callback(当前元素,索引,该数组));返回值:该元素;([].findIndex()返回索引)

       //标准用法
       array. find(callback(currentValue, index, array){
       //do something
      }, this)
    • [ ].filter作用:创建一个新数组, 其包含通过所提供函数实现的测试的所有元素,传参:(callback(当前元素,索引,该数组));返回值:通过测试的元素的集合的数组;

       //标准用法
       let arr = array. filter(callback(currentValue, index, array){
       //do something
       }, this)
    • [ ].map作用:创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。,传参:(callback(当前元素,索引,该数组));返回值:一个新数组,每个元素都是回调函数的结果;

       //标准用法
       var numbers = [1, 4, 9];
       var roots = numbers.map(Math.sqrt);
       // roots的值为[1, 2, 3], numbers的值仍为[1, 4, 9]
    • [ ].every作用:测试数组的所有元素是否都通过了指定函数的测试;传参:(callback(当前元素,索引,该数组));返回值truefalse

         //标准用法
         function isBigEnough(element, index, array) {
          return (element >= 10);}
         var passed = [12, 5, 8, 130, 44].every(isBigEnough);// passed is false
         passed = [12, 54, 18, 130, 44].every(isBigEnough);// passed is true
    • [ ].some作用:测试数组的某些元素是否都通过了指定函数的测试;传参:(callback(当前元素,索引,该数组));返回值truefalse

         //标准用法
         function isBigEnough(element, index, array) {
          return (element >= 10);}
         var passed = [1, 5, 8, 3, 4].some(isBigEnough);// passed is false
         passed = [2, 4, 18, 13, 4].some(isBigEnough);// passed is true
    • [ ].reduce作用:对累加器和数组中的每个元素(从左到右)应用一个函数,将其减少为单个值;传参:(callback(累加器accumulator,当前元素,索引,该数组));返回值:函数累计处理的结果;

         //标准用法
         var total = [0, 1, 2, 3].reduce(function(sum, value) {
          return sum + value;
        }, 0);// total is 6
      
         var flattened = [[0, 1], [2, 3], [4, 5]].reduce(function(a, b) {
          return a.concat(b);}, []);
          // flattened is [0, 1, 2, 3, 4, 5]
    • [ ].entries作用:返回一个新的Array Iterator对象,该对象包含数组中每个索引的键/值对;传参:(无));返回值:一个新的 Array 迭代器对象;

         //标准用法
         var arr = ["a", "b", "c"];
         var iterator = arr.entries();// undefined
         console.log(iterator);// Array Iterator {}
         console.log(iterator.next().value); // [0, "a"]
         console.log(iterator.next().value); // [1, "b"]
         console.log(iterator.next().value); // [2, "c"]
    • [ ].values作用:数组转对象;传参:(无));返回值:一个新的 Array 迭代器对象;

         //标准用法
         let arr = ['w', 'y', 'k', 'o', 'p'];
         let eArr = arr.values();// 您的浏览器必须支持 for..of 循环
         // 以及 let —— 将变量作用域限定在 for 循环中
        for (let letter of eArr) {
               console.log(letter);}


热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Python 自然语言处理(NLP)基础与实战
Python 自然语言处理(NLP)基础与实战

本专题系统讲解 Python 在自然语言处理(NLP)领域的基础方法与实战应用,涵盖文本预处理(分词、去停用词)、词性标注、命名实体识别、关键词提取、情感分析,以及常用 NLP 库(NLTK、spaCy)的核心用法。通过真实文本案例,帮助学习者掌握 使用 Python 进行文本分析与语言数据处理的完整流程,适用于内容分析、舆情监测与智能文本应用场景。

10

2026.01.27

拼多多赚钱的5种方法 拼多多赚钱的5种方法
拼多多赚钱的5种方法 拼多多赚钱的5种方法

在拼多多上赚钱主要可以通过无货源模式一件代发、精细化运营特色店铺、参与官方高流量活动、利用拼团机制社交裂变,以及成为多多进宝推广员这5种方法实现。核心策略在于通过低成本、高效率的供应链管理与营销,利用平台社交电商红利实现盈利。

109

2026.01.26

edge浏览器怎样设置主页 edge浏览器自定义设置教程
edge浏览器怎样设置主页 edge浏览器自定义设置教程

在Edge浏览器中设置主页,请依次点击右上角“...”图标 > 设置 > 开始、主页和新建标签页。在“Microsoft Edge 启动时”选择“打开以下页面”,点击“添加新页面”并输入网址。若要使用主页按钮,需在“外观”设置中开启“显示主页按钮”并设定网址。

16

2026.01.26

苹果官方查询网站 苹果手机正品激活查询入口
苹果官方查询网站 苹果手机正品激活查询入口

苹果官方查询网站主要通过 checkcoverage.apple.com/cn/zh/ 进行,可用于查询序列号(SN)对应的保修状态、激活日期及技术支持服务。此外,查找丢失设备请使用 iCloud.com/find,购买信息与物流可访问 Apple (中国大陆) 订单状态页面。

136

2026.01.26

npd人格什么意思 npd人格有什么特征
npd人格什么意思 npd人格有什么特征

NPD(Narcissistic Personality Disorder)即自恋型人格障碍,是一种心理健康问题,特点是极度夸大自我重要性、需要过度赞美与关注,同时极度缺乏共情能力,背后常掩藏着低自尊和不安全感,影响人际关系、工作和生活,通常在青少年时期开始显现,需由专业人士诊断。

7

2026.01.26

windows安全中心怎么关闭 windows安全中心怎么执行操作
windows安全中心怎么关闭 windows安全中心怎么执行操作

关闭Windows安全中心(Windows Defender)可通过系统设置暂时关闭,或使用组策略/注册表永久关闭。最简单的方法是:进入设置 > 隐私和安全性 > Windows安全中心 > 病毒和威胁防护 > 管理设置,将实时保护等选项关闭。

6

2026.01.26

2026年春运抢票攻略大全 春运抢票攻略教你三招手【技巧】
2026年春运抢票攻略大全 春运抢票攻略教你三招手【技巧】

铁路12306提供起售时间查询、起售提醒、购票预填、候补购票及误购限时免费退票五项服务,并强调官方渠道唯一性与信息安全。

122

2026.01.26

个人所得税税率表2026 个人所得税率最新税率表
个人所得税税率表2026 个人所得税率最新税率表

以工资薪金所得为例,应纳税额 = 应纳税所得额 × 税率 - 速算扣除数。应纳税所得额 = 月度收入 - 5000 元 - 专项扣除 - 专项附加扣除 - 依法确定的其他扣除。假设某员工月工资 10000 元,专项扣除 1000 元,专项附加扣除 2000 元,当月应纳税所得额为 10000 - 5000 - 1000 - 2000 = 2000 元,对应税率为 3%,速算扣除数为 0,则当月应纳税额为 2000×3% = 60 元。

35

2026.01.26

oppo云服务官网登录入口 oppo云服务登录手机版
oppo云服务官网登录入口 oppo云服务登录手机版

oppo云服务https://cloud.oppo.com/可以在云端安全存储您的照片、视频、联系人、便签等重要数据。当您的手机数据意外丢失或者需要更换手机时,可以随时将这些存储在云端的数据快速恢复到手机中。

121

2026.01.26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
React 教程
React 教程

共58课时 | 4.2万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 2.5万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号