数组的常用函数方法总结

1. join()

join(’参数‘)把数组的元素以传入的参数为分割符,转换成字符串。

代码如下:

let arr = [1,2,3,4,5];
let str = arr.join(',');
console.log(str) // 打印结果为 '1,2,3,4,5';

2.push() 跟 pop() 

(1):push(): 可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。

(2):pop():数组末尾移除最后一项,减少数组的 length 值,然后返回移除的项。

let arr = ['张三','李四','王五'];
let count = arr.push('马六');
console.log(arr) // 打印结果为: ['张三','李四','王五','马六']
console.log(count) // 打印结果为: 4

let item = arr.pop();
console.log(item) // 打印结果为: 马六;

 3.shift() 和 unshift()

(1):shift():删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined 。

(2):unshift():将参数添加到原数组开头,并返回数组的长度 。

let arr = ['张三','李四','王五'];
let item = arr.shift();
console.log(arr) // 打印结果为: ['李四','王五']
console.log(item); // 打印结果为: 张三

let count = arr.unshift('马六');

console.log(arr) // 打印结果为: ['马六','李四','王五']
console.log(count) //打印结果为: 3

4.reverse();

reverse();将数组的数据进行反转,并且返回反转后的数组,会改变原数组

let arr = [1,2,3,4,5];
let arr1 = arr.reverse();
console.log(arr1) //打印结果为:  [5,4,3,2,1]
console.log(arr) //打印结果为:  [5,4,3,2,1]

5.sort();

sort();对数组内的数据进行排序(认为升序),并且返回排过序的新数组,会改变原来的数组

let arr = [12,2,43,5,2,5];
console.log(arr.sort()) // 打印结果为: [12, 2, 2, 43, 5, 5]

注意:通过上面的案例,你会发现 打印的数组和原数组比较还是有变化的 [12,2,43,5,2,5] -> [12, 2, 2, 43, 5, 5];但是有没有达到我们想要的结果,这是为什么呢? 因为排序是针对字符的排序,先使用数组的toString()方法转为字符串,再逐位比较,3是大于12的,因为首位3>1,不要与Number型的数据排序混淆。 

 (1):

5.1那如果需要数值排序怎么办呢?

// 如果需要数值排序,sort(callback) 需要传入一个回调涵数,该函数应该具有两个参数,比较这两个参数,然后返回一个用于说明这两个值的相对顺序的数字(a-b);
例如:

let arr = [12,2,43,5,2,5];
console.log(arr.sort((a,b)=>a-b)) // 打印结果为: [2, 2, 5, 5, 12, 43]

6.slice();

截取指定位置的数组,并且返回截取的数组,不会改变原数组

/**

*注意:slice(startIndex, endindex)可以有两个参数,startIndex为必选,表示从第几位开始;endindex为可选,表示到第几位结束(不包含endindex位),省略表示到最后一位;startIndex和endindex都可以为负数,负数时表示从最后一位开始算起,如-1表示最后一位

**/

let arr =  ['张三','李四','王五','马六'];
console.log(arr.slice(1,3)); // 打印结果以为:  ['李四', '王五']
console.log(arr) // 打印结果为:   ['张三','李四','王五','马六']; 原数组是没有改变的。

 

7.splice();

向数组中添加,或从数组删除,或替换数组中的元素,然后返回被删除/替换的元素。

 // 注意:splice(start,num,val1,val2,...); 所有参数全部可选。和 slice 相比 splice 是会改变原数组的。
start 是开始位置,可以为负数,-1就代表从最后一位开始,num代表要删除或者替换的长度,不能为负数//


let arr = ['张三','李四','王五','马六'];
console.log(arr.splice(2,1)) // 打印结果为:   ['王五']
console.log(arr) // 打印结果为:   ['张三','李四','马六']

let arr = ['张三','李四','王五','马六'];
console.log(arr.splice(2,1,'七郎')) // 打印结果为:   ['王五'] 
console.log(arr) // 打印结果为:   ['张三', '李四', '七郎', '马六']

8.toString();

将数组转换成字符串,类似于没有参数的join()。该方法会在数据发生隐式类型转换时被自动调用,如果手动调用,就是直接转为字符串。不会改变原数组 

 代码如下:

let arr = [1,2,3,4,5,6];
console.log(arr.toString()) // 打印结果为: '1,2,3,4,5,6'

【注意:他没有参数】 

9.indexOf();

根据指定的数据,从左向右,查询在数组中出现的位置,如果不存在指定的数据,返回-1,找到了指定的数据返回该数据的索引   

代码如下:

let arr = ['张三','李四','王五','马六'];
console.log(arr.indexOf('李四')) // -> 1
console.log(arr.indexOf('李四',2)) // -> -1

注意:indexOf(value, start);value为要查询的数据;start为可选,表示开始查询的位置,当start为负数时,从数组的尾部向前数;如果查询不到value的存在,则方法返回-1

10.forEach()

ES5新增的方法,用来遍历数组,没有返回值,


let arr = ['张三','李四','王五','马六']
let a = arr.forEach((item,index,self)=>{
    console.log(value + "--" + index + "--" + (arr === self));
})
// 打印结果为:
// 张三--0--true
// 李四--1--true
// 王五--2--true
// 马六--3--true
console.log(a);  // 注意: undefined---forEach没有返回值
//该方法为遍历方法,不会修改原数组

/注意:forEach(callback);callback认有三个参数,分别为value(遍历到的数组的数据),index(对应的索引),self(数组自身)。

文章出自于:

微笑的弧度_c50f

icon-default.png?t=M7J4

https://www.jianshu.com/u/eec38d70027e

 

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...