一、增(下面前三种是对原数组产生影响的增添方法,第四种则不会对原数组产生影响)

1. push() 方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度(该方法修改原有数组)

    <script>/* push() 方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度。 */function demoPush() {var arr = [2, 4, 6, 8, 10];var newArr = arr.push(12);console.log(newArr); //6  该数组的新长度console.log(arr); //[2, 4, 6, 8, 10, 12]newArr = arr.push(14, 16, 18, 20);console.log(newArr); //10  该数组的新长度console.log(arr); //[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]}demoPush()</script>

2. unshift() 方法将一个或多个元素添加到数组的开头,并返回该数组的新长度(该方法修改原有数组)

    <script>// unshift() 方法将一个或多个元素添加到数组的开头,并返回该数组的新长度// (该方法修改原有数组)function demoUnshift() {var arr = [9, 11, 13];console.log(arr.unshift(7)); //4console.log(arr); //[7, 9, 11, 13]console.log(arr.unshift(1, 3, 5)); //7console.log(arr); //[1, 3, 5, 7, 9, 11, 13]}demoUnshift()</script>

3. splice() 方法通过删除或替换现有元素或者添加新的元素来修改数组,并以数组形式返回被修改的内容,此方法会改变原数组

    <script>// splice() 方法通过删除或替换现有元素或者原地添加新的元素来修改数组,// 并以数组形式返回被修改的内容。此方法会改变原数组function demoSplice() {var arr = ['星期一', '星期三', '星期四', '星期六'];arr.splice(1, 0, '星期二');console.log(arr); //['星期一', '星期二', '星期三', '星期四', '星期六']}demoSplice()</script>

4. concat() 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组

    <script>// concat() 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组function demoConcat() {var arr1 = ['a', 'b', 'c'];var arr2 = ['d', 'e', 'f'];var arr3 = arr1.concat(arr2);console.log(arr3); //['a', 'b', 'c', 'd', 'e', 'f']console.log(arr1); //['a', 'b', 'c']console.log(arr2); //['d', 'e', 'f']var arr = [1, 2, 3];var newarr = arr.concat(4, 5, [6, 7, 8, 9], [10, 11], 12);console.log(newarr); //[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]}demoConcat()</script>

二、删(下面三种都会影响原数组,最后一项不影响原数组)

1. pop()方法从数组中删除最后一个元素,并返回该元素的值。此方法更改数组的长度

    <script>/* pop()方法从数组中删除最后一个元素,并返回该元素的值。此方法更改数组的长度。 */function demoPop() {var arr = ["香蕉", "苹果", "橘子", "西瓜", "葡萄"];console.log(arr.pop()); //葡萄console.log(arr.length); //4console.log(arr); //['香蕉', '苹果', '橘子', '西瓜']}demoPop()</script>

2. shift() 方法从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度

    <script>// shift() 方法从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度function demoShift() {var arr = ['a', 'b', 'c', 'd', 'e'];var deleteHead = arr.shift();console.log(deleteHead); //aconsole.log(arr); //['b', 'c', 'd', 'e']}demoShift()</script>

3. splice() 方法通过删除或替换现有元素或者添加新的元素来修改数组,并以数组形式返回被修改的内容,此方法会改变原数组

    <script>// splice() 方法通过删除或替换现有元素或者原地添加新的元素来修改数组,// 并以数组形式返回被修改的内容。此方法会改变原数组function demoSplice() {var arr = ['星期一', '星期三', '星期四', '星期六'];// 由被删除的元素组成的一个数组。// 如果只删除了一个元素,则返回只包含一个元素的数组。// 如果没有删除元素,则返回空数组。var ret = arr.splice(4, 1, '星期五');console.log(ret); //星期六console.log(arr); //['星期一', '星期二', '星期三', '星期四', '星期五']}demoSplice()</script>

三、改(即修改原来数组的内容,常用splice

1. splice() 方法通过删除或替换现有元素或者添加新的元素来修改数组,并以数组形式返回被修改的内容,此方法会改变原数组

    <script>// splice() 方法通过删除或替换现有元素或者原地添加新的元素来修改数组,// 并以数组形式返回被修改的内容。此方法会改变原数组function demoSplice() {var arr = ['星期一', '星期三', '星期四', '星期五'];ret = arr.splice(1, 0, '星期二'); //增加一个元素console.log(arr); //['星期一', '星期二', '星期三', '星期四', '星期五']ret = arr.splice(4, 1, '星期六','星期日');  //插入两个值,删除一个元素console.log(arr); //['星期一', '星期二', '星期三', '星期四', '星期六', '星期日']}demoSplice()</script>

四、查

10. indexOf()方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1

    <script>// indexOf()方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1function demoIndexOf(){var arr = ['red','pink','blue','green','yellow','red'];// 寻找red首次出现的下标console.log(arr.indexOf('red')); //0// 从序号2向后寻找red首次出现的下标console.log(arr.indexOf('red',2)); //5console.log(arr.indexOf('while')); //-1}demoIndexOf()</script>

五、排序(数组有两个方法可以用来对元素重新排序)

1. reverse原地反转数组

    <script>// reverse原地反转数组,改变原数组function demoReverse() {var arr = [1, 2, 3];var reverseArr = arr.reverse();console.log(reverseArr); //[3, 2, 1]console.log(arr); //[3, 2, 1]}demoReverse()</script>

2. sort() 方法用原地算法对数组的元素进行排序,并返回数组。默认排序顺序是在将元素转换为字符串,然后比较它们的码点(在字符集中的序号)

    <script>// sort() 方法用原地算法对数组的元素进行排序,并返回数组。// 默认排序顺序是在将元素转换为字符串,然后比较它们的码点(在字符集中的序号)function demoSort() {var arr = ['zhang', 'luo', 'cai', 'hua', 'find'];arr.sort();console.log(arr); //['cai', 'find', 'hua', 'luo', 'zhang']}demoSort()/* 自定义排序规则 */function demoSort2() {var arr = [22, 5, 15, 23, 48, 89, 47];arr.sort(function (a, b) {return a - b})console.log(arr); //[5, 15, 22, 23, 47, 48, 89]}demoSort2()</script>

六、转换

1. join() 方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。如果数组只有一个项目,那么将返回该项目而不使用分隔符

    <script>/* join() 方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。如果数组只有一个项目,那么将返回该项目而不使用分隔符。 */function demoJoin() {var arr = ['Fire', 'Air', 'Water'];console.log(arr.join()); //Fire,Air,Waterconsole.log(arr.join('')); //FireAirWaterconsole.log(arr.join('-')); //Fire-Air-Water}demoJoin()</script>

七、数组的批处理(都不改变原数组)

1.forEach() 方法对数组的每个元素执行一次给定的函数(或特定的操作)。

        function demoForEach() {var arr = ['a', 'b', 'c'];arr.forEach(// element:数组中正在处理的当前元素// index:数组中正在处理的当前元素的索引  // arr:function方法正在操作的数组function (element, index, arr) {console.log('给数组每个元素进行操作', element, index, arr);//输出//给数组每个元素进行操作 a 0 Array(3)//给数组每个元素进行操作 b 1 Array(3)//给数组每个元素进行操作 c 2 Array(3)})}demoForEach();

2.map() 方法创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后     的返回值

        function demoMap() {var arr = [3, 6, 9, 12, 15];var arr2 = arr.map(// element:数组中正在处理的当前元素// index:数组中正在处理的当前元素的索引// arr:function方法正在操作的数组function (element, index, arr) {return element * 3;});console.log(arr);//[3, 6, 9, 12, 15]console.log(arr2);//[9, 18, 27, 36, 45]}demoMap();

3.filter() 方法创建一个新数组, 当中包含通过测试(用函数定义测试规则)的所有元素

       function demoFilter() {var arr = [1, 2, 4, 8, 10];//ret 接收结果var ret = arr.filter(// element:数组中正在处理的当前元素// index:数组中正在处理的当前元素的索引// arr:function方法正在操作的数组function (element, index, arr) {return element >= 4;});console.log(ret);//[4, 8, 10]}demoFilter();

4.every() 方法测试一个数组内的所有元素是否都能通过某个指定函数的测试,它返回一个布尔值

       function demoEvery() {//先定义测试函数// element:数组中正在处理的当前元素// index:数组中正在处理的当前元素的索引// arr:function方法正在操作的数组var test = function (element, index, arr) {return element >= 3;}var arr = [3, 6, 9, 12, 15];//测试是否arr中的每一个元素都能通过test的测试var ret = arr.every(test);console.log(ret);//true}demoEvery();

5.some() 方法测试数组中是不是至少有1个元素通过了被提供的函数测试,它返回的是一个Boolean类型的值

       function demoSome() {var arr = [2, 4, 6, 9, 10];// element:数组中正在处理的当前元素var odd = function (element) {return (element % 2 === 1);}var ret = arr.some(odd);console.log(ret);//true}demoSome();

6.reduce() 方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值

       function demoReduce() {var arr = [3, 6, 9, 12, 15];//acc 累计器//element 当前值var reducer = function (acc, element) {return acc + element;}var ret = arr.reduce(reducer);//3 + 6 + 9 + 12 + 15console.log(ret);//45//以10当前值累计//10 + 3 + 6 + 9 + 12 + 15console.log(arr.reduce(reducer, 10));//55}demoReduce();

前端H5面试题Js: 数组的常用方法有哪些?相关推荐

  1. 前端基础面试题(JS部分)

    1.几种基本数据类型?复杂数据类型?值类型和引用数据类型?堆栈数据结构? 基本数据类型:Undefined.Null.Boolean.Number.String 值类型:数值.布尔值.null.und ...

  2. 前端常见面试题 - JS篇

    以下会是JS常见面试题: 面试题将会以系列不定时更新,编写不宜,如有用到,请动动小手关注一下. 1. 简述ES6 1. let: 块级作用域. 2. const: 常量; 块级作用域; 一旦声明, 则 ...

  3. 关于js数组的常用方法的总结

    1.concat() 合并数组,可以合并一个或多个数组,会返回合并数组之后的数据,不会改变原来的数组 var str1= [12,2,"hello"]; var str2 = [& ...

  4. js数组遍历常用方法 0802二

    介绍:访问,获取数组所有元素或指定某项元素,并对数组元素进行一些操作 方法一:for循环 // for循环 最常见let arr = [1, 2, 3, 4, 5];for (let i = 0; i ...

  5. JS中数组的常用方法(concat拼接,join修改间隔符,pop移除最后一个元素,push在数组最后添加新的元素,reverse反转数组元素,shift移除第一个元素,unshift添加,spli)

    <html><head><title>js数组的常用方法</title><meta charset="UTF-8"/>& ...

  6. 【理论面试篇】收集整理来自网络上的一些常见的 经典前端、H5面试题 Web前端开发面试题...

    ##2017.10.30收集 面试技巧 5.1 面试形式 1)        一般而言,小公司做笔试题:大公司面谈项目经验:做地图的一定考算法 2)        面试官喜欢什么样的人 ü  技术好. ...

  7. js考试题 html5新特性,Web前端初级面试题总结

    Web前端初级面试题总结 发布时间:2018-11-02 11:17, 浏览次数:549 , 标签: Web Web篇: 1.常见的浏览器内核有哪些? IE:Trident内核            ...

  8. 2020前端最新面试题总结(js、html、小程序、React、ES6、Vue、算法、全栈热门视频资源)(3年前端菜鸟级开发师含泪总结)

    2020前端最新面试题总结(js.html.小程序.React.ES6.Vue.算法.全栈热门视频资源) 文档描述 (今年确实挺难 3年前端菜鸟级开发师含泪总结 希望能帮助大家) 本文是关注微信小程序 ...

  9. JS数组、对象、字符串常用方法汇总

    JS数组.对象.字符串常用方法汇总 前言 数组常用方法 Array.prototype.slice(start, end) Array.prototype.map() Array.prototype. ...

  10. 前端基础面试题大全-极乐科技(一)-JS部分

    2019独角兽企业重金招聘Python工程师标准>>> #JS部分 ###1.几种基本数据类型?复杂数据类型?值类型和引用数据类型?堆栈数据结构? 基本数据类型:Undefined. ...

最新文章

  1. CentOS7.5常用命令整理
  2. javascript 获取光标所选中的内容并插入到另一个文本框中(兼容ie和ff)
  3. Linux源代码软件安装,Linux软件安装:源代码与软件安装
  4. 计算机关机又自动重启,为什么w7电脑关机后自动重启_w7电脑关机后自动重启怎么解决...
  5. jsp调用servlet_宇宙最全Servlet详解!!
  6. 【DP】Mod Mod Mod(CF889E)
  7. 使用注解配置spring如@Compnent、@Service、@Consroller、@scope和@value的使用
  8. python运维脚本简书_Python运维篇:会Python的运维工程师价值多少?
  9. smtp服务器组件,配置exchange Smtp服务器
  10. 数学专业考研计算机,过来人谈数学专业考研:万学之基 万物皆数也
  11. 青鸟s1java云题库答案_北大青鸟S1java内部测试试卷(试题)
  12. 南科大学生对网络授课的反馈
  13. python IO Demo
  14. Linux内核jump label与static key的原理与示例
  15. nmap批量扫描(速度快)方法
  16. 信息安全专家李钊博士:信息物理系统安全威胁
  17. uni-app封装axios
  18. 类型多样的鸡尾酒免抠摄影素材,速来收藏
  19. 内娱完蛋了?不如让5G“出道”来抢救一下
  20. NOIp2015酱油酱油记

热门文章

  1. 初识KnockoutJS
  2. 逆向直播盒子MT·Box-iOS客户端
  3. 网易云音乐的品牌竞争力研究
  4. SSM框架原理流程及使用方法
  5. 如何解决 Word 打印时内容缺失的问题?
  6. 【C语言】模块化编程-通俗易懂
  7. Intel_Hm55_AHCI驱动
  8. python怎么算积分_如何在python中求解积分方程?
  9. GB与CE标准对照表-转载
  10. GD32F103ZKT6替换STM32F103调试手记