JS中常用数组方法总结

79 阅读4分钟

JS中常用数组方法总结

​ By Awayer 2023/3/15

1.push( )

功能:在数组的结尾添加一个或者多个元素

传参:需要加进去的值

返回值:新数组长度

是否影响原数组:是

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

2.unshift( )

功能:在数组第一位添加一个或多个元素

传参:需要加进去的值

返回值:新数组长度

是否影响原数组:是

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

3.pop( )

功能:删除数组的最后一位数据,每次只能删除数组最后一位

传参:无

返回值:被删除的数据

是否影响原数组:是

let arr = ['q','w','q'];
let res = arr.pop();
console.log(arr); // ['q','w']
console.log(res); // q

4.shift( )

功能:删除数组第一位数据,每次只能删除数组第一位

传参:无

返回值:被删除的数据

是否影响原数组:是

let arr = ['A','w','a','y'];
let res = arr.shift();
console.log(arr); // ['w','a','y']
console.log(res); // A

5.reverse( )

功能:将数组进行反转

传参:无

返回值:反转后的数组

是否影响原数组:是

let arr = ['I','Love',' Sipc'];
let res = arr.reverse();
console.log(arr); //[ ' Sipc', 'Love', 'I' ]
console.log(res); //[ ' Sipc', 'Love', 'I' ]

6.sort( )

功能:将数组进行排序

传参:箭头函数

返回值:排序后的数组

是否影响原数组:是

传参写法

let arr = [3,1,5,2,4];
let res = arr.sort((a,b)=>{
    return a-b;	// 如果a-b>0,那么从小到大排序
})
console.log(arr); // [ 1, 2, 3, 4, 5 ]
console.log(res); // [ 1, 2, 3, 4, 5 ]
let arr = [3,1,5,2,4];
let res = arr.sort((a,b)=>{
    return b-a;	// 如果b-a>0,那么从大到小排序
})
console.log(arr); // [ 5, 4, 3, 2, 1 ]
console.log(res); // [ 5, 4, 3, 2, 1 ]

数组元素为对象时(可以按照某个属性来排序):

let arr = [
  {name:'澄闪',star:6},
  {name:'德克萨斯',star:5},
  {name:'松果',star:4}
];
let res = arr.sort((a,b)=>{
    return b.star-a.star;
});
console.log(arr); // [  { name: '澄闪', star: 6 },{ name: '德克萨斯', star: 5 },{ name: '松果', star: 4 }]
console.log(res); //同上

7.splice( )

功能:向数组中添加/删除/替换元素

传参:(index , howmany , item1,item2...)

image-20230315205513085.png

返回值:被改变的值的数组

是否影响原数组:是

let arr = ['2004','1','30'];
let res = arr.splice(1,1,'12');
console.log(arr); // [ '2004', '12', '30' ]
console.log(res); // ['1']
let arr = ['2004','1','30'];
let res = arr.splice(1,2,'12','1');
console.log(arr); // [ '2004', '12', '1' ]
console.log(res); // [ '1', '30' ]

8.concat( )

功能:多个数组拼接成新的数组

传参:需要拼接的数组,可以是多个

返回值:拼接好的数组

是否影响原数组:

let arr1 = [1,2,3];
let arr2 = ['a','b','c'];
let arr3 = ['qwq','awa','115'];
let res = arr1.concat(arr2,arr3);
console.log(arr1); // [ 1, 2, 3 ]
console.log(res); // [1, 2, 3, 'a', 'b', 'c', 'qwq', 'awa', '115']

9.join( )

功能:用特定字符将数组拼接成字符串

传参:用什么特定字符拼接(不传参默认用“,”)

返回值:拼接好的字符串

是否影响原数组:

下述代码用了split()配合join使用,实现了拼接数组:

let arr1 = [1,2,3];
let arr2 = ['a','b','c'];
let str = arr1.join() + ',' + arr2.join(); // 1,2,3,a,b,c (string)
let res = str.split(',');
console.log(arr1); // [1,2,3]
console.log(res); // [ '1', '2', '3', 'a', 'b', 'c' ]

10.slice( )

功能:截取指定位置的数组

传参:(startIndex起始下标 , endIndex终止下标**(不包括)**)

*注意是左闭右开

返回值:截取的数组

是否影响原数组:

let arr = ['a','b','c','d','e'];
let res = arr.slice(1,4);
console.log(arr); // [ 'a', 'b', 'c', 'd', 'e' ]
console.log(res); // [ 'b', 'c', 'd' ]

11.toString( )

功能:将数组转化为字符串

传参:无

返回值:转变成的字符串

是否影响原数组:

let arr = ['q','w','q'];
let res = arr.toString();
console.log(arr); // [ 'q', 'w', 'q' ]
console.log(res); // q,w,q (string)

我的评价是,这个方法不如直接用JS的特性,如下:

let arr = [1,2,3];
let res = arr + '';
console.log(res); // 1,2,3
console.log(typeof(res)); // string

简单又便捷嗷

12.indexOf( )

功能:查询某个元素在数组中第一次出现的位置

传参:要查询的元素

返回值:如果找到则返回第一次出现的位置,如果不存在则返回**-1**

是否影响原数组:否

let arr = ['A','w','a','y','e','r'];
let res1 = arr.indexOf('a');
let res2 = arr.indexOf('b');
console.log(res1); // 2
console.log(res2); // -1

13.lastIndexOf( )

功能:查询某个元素在数组中最后一次出现的位置

传参:要查询的元素

返回值:如果找到则返回最后一次出现的位置,如果不存在则返回**-1**

是否影响原数组:否

let arr = ['q','w','q','a','w','a'];
let res1 = arr.lastIndexOf('w');
let res2 = arr.lastIndexOf('e');
console.log(res1);
console.log(res2);

14.forEach( )

功能:遍历数组

传参:function(val , index , array)

​ item:每次循环的当前元素

​ index:当项索引值

	 array:原始数组

返回值:undefined

是否改变原数组:否

let arr = [1,2,3,4,5];
let res = arr.forEach((item,index)=>{
    console.log('元素:'+ (item+1) +'下标:'+index); 
})
//元素:2下标:0
//元素:3下标:1
//元素:4下标:2
//元素:5下标:3
//元素:6下标:4
console.log(res); // undefined

15.map( )

功能:遍历数组,每次循环执行传入的回调函数,根据回调函数的返回值,生成一个新数组

传参:回调函数(val , index , array)

​ item:每次循环的当前元素

​ index:当项索引值

	 array:原始数组

返回值:处理后的新数组

let arr = [1,2,3,4,5,6];
let res = arr.map((item)=>{
    return item + 1;
});
console.log(res); // [ 2, 3, 4, 5, 6, 7 ]