JS数组十个常用的方法

1、join()

Array.join()方法是数组转化为字符串的方法,参数为转换后的分隔符,不传默认是逗号。

let arr = [1, 2, 3];
arr.join();            // '1,2,3'
arr.join('');          // '123'
arr.join('*');         // '1*2*3'

2、reverse()

Array.reverse()是数组倒序方法,这个倒序不是排序后的倒序,是原数组顺序颠倒。

let arr = [1, 2, 3];
arr.reverse();        // arr等于[3, 2, 1]

3、concat()

合并数组的时候通常会采用concat()方法,该方法会返回一个新数组,不影响其他元素。

let arr = [1, 2, 3];
arr.concat(4, 5);        // [1, 2, 3, 4, 5]
arr.concat([4, 5]);      // [1, 2, 3, 4, 5]
arr.concat([[4, 5]]);    // [1, 2, 3, [4, 5]]

4、sort()

sort()方法接收的参数是一个函数,用来判断返回正序还是倒序排列,如果不传参数,将会按照字母表的顺序排列。如果元素中包含undefined,将会被放到数组的最后。如果我们想得到正序排列(从小到大),就将sort返回一个负值,相反,如果想倒序排列,就返回一个正值。在排序英文元素的时候,直接返回正负即可。

let arr = [11, 3, 222, 44];
let arr1 = ['b', 'd', 'a', 'c'];
arr.sort();          // [11, 222, 3, 44]
arr.sort((a, b) => {
    return a - b;    // [3, 11, 44, 222]
})
arr.sort((a, b) => {
    return b - a;    // [222, 44, 11, 3]
})

arr1.sort((a, b) => {
    return -1;       // ['a', 'b', 'c', 'd']
})
arr1.sort((a, b) => {
    return 1;        // ['d', 'c', 'b', 'a']
})

注意,英文排序时,在不传参的情况下,如果元素首字母存在大小写不同的情况,大写在前,小写在后。

5、slice()

这个方法是截取数组的一部分,但不修改原数组。两个参数是下标位置,标识起始位置和结束位置,但截取部分不包含结束位置。如果只传1个参数,代表从该参数开始截取到数组最后一位。当参数为负数的时候表示倒数第几个元素。

let arr = [1, 2, 3, 4, 5];
arr.slice(0, 3);        // 从下标0开始截取到下标3  返回[1, 2, 3]  arr不变
arr.slice(3);           // 从下标3开始截取到数组最后  返回[4, 5]
arr.slice(-3, -1);      // 从倒数第三个截取到倒数第一个  返回[3, 4]

6、splice()

splice()方法在写法上很容易跟slice()混淆,这两者在功能上的区别还是很大的。splice()方法主要用于从数组中删除、插入元素。是平时工作中用的比较多的数组方法。它的第一个参数跟slice()相同,代表插入和删除的起始位置,第二个参数则是要删除的元素个数,如果省略第二个参数,会从起始位置删除到最后一位。第2+n个参数代表需要插入到数组中的元素,从第一个参数的位置插入。注意,这个方法返回的是被删除的元素集合。

let arr = [1, 2, 3, 4, 5, 6];
arr.splice(4);            // 返回[5, 6]   arr是[1, 2, 3, 4]
arr.splice(1, 2);         // 返回[2, 3]   arr是[1, 4]
arr.splice(1, 0, 2, 3);   // 返回[]       arr是[1, 2, 3, 4]

7、push()和pop()

push()和pop()是一组方法,push()在数组结尾添加元素,pop()是删除数组最后一个元素。值得注意的是,push()返回的是数组新长度,而并非添加后的新数组,pop返回的是删除的元素,如果数组为空返回undefined。

let arr = [4];
arr.push(1, 2);        // 返回3, arr是[4, 1, 2]
arr.pop();             // 返回2, arr是[4, 1]

8、unshift()和shift()

unshift()和shift()也是一组方法,unshift()是在数组头部添加元素,shift()则是删除数组的一个元素。unshift()返回的是数组新长度,shift()返回的是删除的数组元素。

let arr = [1, 2, 3];
arr.unshift(4);        // 返回4, arr是[4, 1, 2, 3]
arr.shift();             // 返回4, arr是[1, 2, 3]

9、includes()

includes()方法是在ES7中新添加的数组方法,includes()有两个参数,分别是要搜索的值和搜索的开始索引,第二个参数的默认值是0,该方法会从索引处开始往后搜索。若搜索值在数组中存在则返回true,否则返回false,有点类似indexOf(),很实用的方法。

let arr = ['a', 'b', 'c', 'd'];
arr.includes('b')         // true
arr.includes('b', 1)      // true
arr.includes('b', 2)      // false

10、find()和findIndex()

find()和findIndex()的参数都是一个函数,find()是用于找出第一个符合条件的元素,而findIndex()是用于找出第一个符合条件元素的下标。这两个方法的参数函数内都接收三个参数value、index和arr,find()返回查找到的元素,没有返回undefined,findIndex()返回下标,没有返回-1。

let arr = [1, 5, 10, 15];
arr.find(function(value, index, arr) {         // 返回10
  return value > 9;
})
arr.findIndex(function(value, index, arr) {     // 返回2
  return value > 9;
})

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值