JS常用数组方法

  • List item

一、js数组创建方式

1、 通过Array构造函数的方式创建数组

let arr = new Array()

2、使用数组字面量的方式

let arr =[]

3、创建一个长度为n的数组

let arr =new Array(n)

4、创建一个长度为n的数组,元素为t的元素

let arr =new Array(n).fill(t)

一、js常用数组方法

1、Array.push()

push方法将元素添加到数组末尾,并返回该数组的新长度

let arr = [1,2,3,4,5];
let length = arr.push(6);
console.log(arr,length);
//arr=[1,2,3,4,5,6],length=6

2、Array.pop()

pop方法将数组末尾元素移除,并返回该元素的值

let arr = [1,2,3,4,5];
let a = arr.pop(6);
console.log(arr,a);
//arr=[1,2,3,4],a=5;

3、Array.shift()

shift方法将数组中的第一个元素移除,并返回该元素的值

let arr = [1,2,3,4,5];
let a = arr.shift();
console.log(arr,a);
//arr=[2,3,4,5],a=1;

4、Array.unshift()

shift方法添加一个或多个元素于数组开头,并返回该数组新长度

let arr = [1,2,3,4,5];
let a = arr.unshift(5,2,0);
console.log(arr,a);
//arr=[5, 2, 0, 1, 2, 3, 4, 5],a=8;

5、Array.splice()

splice方法参数按序依次代表开始的索引值、删除的个数、新增的元素。可用于添加、删除、替换数组中的元素,并返回删除的内容。如下:

//删除
let arr = [1,2,3,4,5];
let a = arr.splice(1,2);
console.log(arr,a);
//arr=[1,4,5],a=[2,3];

//新增
let arr = [1,2,3,4,5];
let a = arr.splice(1,0,5,2,0);
console.log(arr,a);
//arr=[1, 5, 2, 0, 2, 3, 4, 5],a=[];

//替换
let arr = [1,2,3,4,5];
let a = arr.splice(1,1,5,2,0);
console.log(arr,a);
//arr=[1, 5, 2, 0, 3, 4, 5],a=[2];

6、Array.slice()

slice方法用于获取数组中某个或某段元素,通过其开始和结束的两个参数作为数组索引确定取值区间,包含开始索引代表元素不包含结尾索引代表元素,且不会影响原数组。

let arr = [1,2,3,4,5];
let a = arr.slice(1,3);
console.log(arr,a);
//arr=[1,2,3,4,5],a=[2,3];

7、Array.join()

join方法用于将数组转换成字符串,并用join方法中所传参数连接,未传参数,默认用逗号连接

let arr = [1,2,3,4,5];
let a = arr.join('~');
console.log(arr,a);
//arr=[1,2,3,4,5],a='1~2~3~4~5';

8、Array.reverse()

reverse方法用于将数组元素反转

let arr = [1,2,3,4,5];
let a = arr.reverse();
console.log(arr,a);
//arr = [5, 4, 3, 2, 1],a = [5, 4, 3, 2, 1];

9、Array.sort()

sort方法用于对数组进行排序,其参数非必填,默认情况下会调用数组中每一项的toString()方法,然后按照unicode编码进行排序,如果数组中存在undefined元素则排到数组末尾。如果数组中的元素存在两位以上的元素,他的排序就可能存在问题。如:

let arr = [3,12,9,21,7,18];
arr.sort();
console.log(arr); 
//arr = [12,18,21,3,7,9]

因此,为了避免这种情况的出现,我们通常会给sort方法进行传参,参数为排序函数

let arr = [3,12,9,21,7,18];
arr.sort((a,b)=>a-b);//升序   [3,7,9,12,18,21]
arr.sort((a,b)=>b-a);//降序   [21,18,12,9,7,3]

10、Array.forEach()

forEach用于遍历数组,其存在三个参数,分别为当前项,索引值,原数组,其作用在于替代for循环,不存在返回值或者说返回值为undefined

let arr1 = [1,2,3,4,5];
arr1.forEach((item,index,arr)=>{
   console.log(item,index)
}); 

11、Array.map()

map将原数组数据进行对应的映射后返回一个新数组,并且不改变原数组数据,存在三个参数,分别为当前项,索引值,原数组

let arr1 = [1,2,3,4,5];
let arr2 = arr1.map(item=>item*2); 
console.log(arr1,arr2)
//arr1 = [1,2,3,4,5],arr2=[2,4,6,8,10]

12、Array.filter()

filter方法主要用于筛选数组中出符合条件的数据,跟map一样,都不改变原数组数据,并且返回一个新数组,存在三个参数,分别为当前项,索引值,原数组

let arr1 = [1,2,3,4,5];
let arr2 = arr1.filter(item=>item>2); 
console.log(arr1,arr2)
//arr1 = [1,2,3,4,5],arr2=[3,4,5]

13、Array.every()

every方法主要用于判断数组中的元素是否全部满足要求,返回值为布尔值,全部满足为true,否则为false,不影响原数组,存在三个参数,分别为当前项,索引值,原数组

let arr1 = [1,2,3,4,5];
let flag= arr1.every(item=>item>0); 
console.log(arr1,flag)
//arr1 = [1,2,3,4,5],arr2=true

14、Array.some()

every方法主要用于判断数组中是否存在满足要求的元素,不影响原数组,返回值为布尔值,存在为true,不存在为false,存在三个参数,分别为当前项,索引值,原数组

let arr1 = [1,2,3,4,5];
let flag= arr1.some(item=>item>3); 
console.log(arr1,flag)
//arr1 = [1,2,3,4,5],flag=true

15、Array.find()

find方法主要用来获取第一项满足条件的元素,不影响原数组,返回值为第一项满足条件的元素值,若不存在满足条件的元素,则返回underfunded,存在三个参数,分别为当前项,索引值,原数组

let arr1 = [1,2,3,4,5];
let flag= arr1.find(item=>item>3); 
console.log(arr1,flag)
//arr1 = [1,2,3,4,5],flag=4

16、Array.reduce()

reduce 接受两个参数,回调函数及初始值。reduce方法为数组中的每一个元素依次执行回调函数,回调函数接受四个参数:初始值(或者上一次回调函数的返回值),当前元素值,当前索引,调用 reduce 方法的数组。一般可用于数组元素求和,多维数组转化为一维数组等。

//数组元素求和

let arr1 = [1,2,3,4,5];
//pre代表其累加值,第一次遍历是pre取reduce函数第二个参数为初始值,cur为当前遍历值
let add= arr1.reduce((pre,cur)=>{
     return pre+cur;
},0); 
console.log(arr1,add)
//arr1 = [1,2,3,4,5],arr2=15
//多维数组转化为一维数组
let arr = [0,[1,2],[3],[4,[5,6,[7]]]];
const newArr = function(arr){
     return arr.reduce((pre,cur)=>{
          return pre.concat(Array.isArray(cur)?newArr(cur):cur);
     },[]);
}
console.log(arr,newArr(arr))
//arr =[0,[1,2],[3],[4,[5,6,[7]]]],   newArr(arr)=[0, 1, 2, 3, 4, 5, 6, 7];

17、Array.concat()

concat用于数组与数组,数组与元素的连接,由数组调用,将调用方法的数组与方法中传入的参数连接起来返回一个新数组,不影响其他数组

let arr = [0,1,2,3]
let result = arr.concat(4)
let result1 = arr.concat([3,4,5])
console.log(result,result1)
//result = [0,1,2,3,4],result1 = [0,1,2,3,3,4,5]

18、Array.indexOf()

indexOf方法主要用于查找数组是否存在某个元素,并返回数组中第一个该元素的下标,如果数组中不存在该元素,则返回-1

let arr = [1,2,3,4]
let index = arr.indexOf(2)
let index1 = arr.indexOf(5)
console.log(index,index1)
//index = 1,index1 = -1

19、Array.lastIndexOf()

lastIndexOf方法用法与indexOf类似,两者不同之处在于indexOf返回的是第一个符合条件的元素的下标,lastIndexOf返回的是最后一个符合条件的元素的下标

let arr = [1,2,3,4,2,3]
let index = arr.lastIndexOf(2)
let index1 = arr.lastIndexOf(5)
console.log(index,index1)
//index = 4,index1 = -1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值