ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

数组的常用方法

2021-01-19 09:04:03  阅读:411  来源: 互联网

标签:常用 下标 元素 list item 数组 返回值 方法


 

l  数组中的增删改,有一个数组var list=[ “a”,“b”,“c”,“d” ]

在数组尾部新增一个或多个元素,多个元素用逗号隔开

l  push();方法,返回值为新增元素后数组的长度,会影响原数组(长度)

list.push(999);表示在list数组后添加一个第四个元素,内容为999

在数组的头部新增一个或多个元素

l  unshift();方法返回值为新增元素后数组的长度,会影响原数组(长度)

list.unshift(1,2);表示在list数组前添加两个元素,内容分别为12和2

删除数组尾部的元素

l  pop();方法,返回值为被删除的元素,会影响原数组(长度)

list.pop();表示删除数组尾部的元素

删除数组头部的元素

l  shift();方法,返回值为被删除的元素,会影响原数组(长度)

list.shift();表示删除数组头部的元素

l  splice()方法

l  splice(startInsdex,length);删除,startInsdex表示起使下标,删除length个元素

list.splic(1,2);表示自下标为1的位置开始,删除后面的两个元素,返回值为被删       除的数组,会影响原数组

最终结果为[ “a”,“d” ]

l  splice(startInsdex,0,arr1,arr2...arrN);新增,startInsdex表示起使下标,0表示不删除元素

list.splic(1,0,“hello”);表示自下标为1的位置开始,新增一个或多个元素,返回值       为空数组,因为被删除的数组,会影响原数组

最终结果为[ “a”,“hello”,“b”,“c”,“d” ]

l  splice(startInsdex,length,arr1,arr2...arrN);修改,startInsdex表示起使下标,删除length个元素,新增arr1...元素

list.splic(1,2,“hello”,“world”);表示自下标为1的位置开始,删除后面的两个元       素,并新增两个元素hello和world,返回值为被删除的数组,会影响原数组

最终结果为[ “a”,“hello”,“world”,“d” ]

l  reverse();方法,表示数组反转,返回值为反转后的原数组,会改变原数组

最终结果为[ “d”,“c”,“b”,“a” ]

l  slice(startInsdex,endInsdex);方法,表示数组的裁切,startInsdex表示起始下标,endInsdex表示终止下标,返回值为被裁切的元素形成的新数组,不会改变原数组

list.slice(1,3);表示裁切下标为1到小于小于下标为3之间的元素,如果不传入参       数,会使用默认值,得到一个与原数组相同的新数组,相当于复制了一个原数组。不会   影响原数组

[ “b”,”c” ]

l  concat();方法,表示数组的拼接,将多个数组或元素拼接形成一个新的数组,不会影响原数组,如果拼接的是数组,则会将数组展开,再把该数组中的每一个元素放在新数组中,如果是其他类型,会直接将其放在新数组中,不会改变原数组。如果不传参数会得到一个与原数组相同的新数组。不会影响原数组

list.concat(arr,brr,“hello”);表示list数组拼接数组arr和brr,也可以拼接元素

l  includes();方法,表示判断数组中是否存在某个元素,如果存在返回true,反之则为false,注意此方法是ES6新增的,存在兼容问题。不会影响原数组

list.includes(“a”);返回值为true;

l  indexOf();方法,表示返回某个元素在数组中第一次出现的位置,如果存在该元素会返回下标,如果不存在会返回-1;可以通过返回值来变相判断是否存在该元素。此方法是属于ES5的方法。不会影响原数组

list.indexOf(“a”);返回值为1。

l  join(char);用特定的字符,将数组拼接形成字符串,不会影响原数组

list.join(“-”);输出结果为a-b-c-d,如果需要输出结果为abcd,就可以将参数改为       空字符串,如果不传入参数,默认会使用逗号(,)拼接。

l  sort();方法,表示将从小到大的顺序元素排列,会影响原数组,其中有两种用法

  • 字符排序

根据字符在ASCII码表的位置进行排序,为sort方法的默认排序方式,返回值为              排序后的原数组,会改变原数组

  • 纯数字排序

list.sort(function (a,b){//a和b为形参,代表前后两个数值

return a-b;//可理解为a-b>0,前一个数大于后一个数时交换位置,即从小                     到大排序

return b-a;//b-a>0,a<b,从大到小排列

});

l  forEach();方法,表示遍历数组,每次循环中执行传入的回调函数

list.forEach(function (item,index,array){

console.(item);//打印每次循环的元素

console.(index);//打印每次循环的当前下标

console.(array);//打印原数组

})

l  map();方法,表示遍历数组,每次循环中执行传入的回调函数,根据回调函数的返回值生成一个新的数组,最后输出的值为一个元素只有”1“的新数组,长度则为list的长度

list.map(function(){

return “1”;

})

l  filter();方法,表示遍历数组,每次循环中执行传入的回调函数,回调函数返回一个条件,把满足条件的元素筛选出来放到新数组中

list.filter(function (item,index,array){

return item>=60;//把满足条件的元素返回到新数组中

})

l  some();方法,表示遍历数组,每次循环中执行传入的回调函数,回调函数返回一个条件,只要有一个元素满足条件,就返回true,都不满足就返回false,可以判断数组中是否存在满足某个条件的元素

list.some(function (item,index,array){

return item>=60;

})

l  every();方法,表示遍历数组,每次循环中执行传入的回调函数,回调函数返回一个条件,全都满足返回true,只要有一个不满足,就返回false。

list.every(function (item,index,array){

return item>=60;

})

l  reduce();方法,表示遍历数组,每次循环中执行传入的回调函数,回调函数会返回一个值,将该值作为初始值prev,传入到下一次函数中,prev为初始值,也可以通过reduce的第二个参数设置初始值(红色字体),如果不设置初始值默认是数组中的第一个元素,遍历时从第二个元素遍历,返回值为最终求取结果

list.reduce(function (prev,item,index,array){

return prev + item;//prev为初始值(类似求和sum)

},0)

l  reduceRight();方法,用法与reduce一样,只不过是从右往左

list.reduce(function (prev,item,index,array){

return prev + item;//prev为初始值(类似求和sum)

})

 

 

伪数组

l  又称类数组,表示有数组的特性(length,下标取值,可以被循环遍历,不建议用fo...in,使用for...in虽然可以被遍历,但是会多出一些属性),但是不能使用数组的方法(push(),concat()等方法)

l  如果需要使用数组的方法,就可以将伪数组转化为真数组

  • 新建一个数组,将伪数组中的每一个元素放到新数组中
  • 借助构造函数Array的方法

Array.from();//表示接收一个伪数组,返回对应的真数组

标签:常用,下标,元素,list,item,数组,返回值,方法
来源: https://www.cnblogs.com/ZeroZeroNine/p/14296188.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有