数组方法总结归纳(一)

201 阅读3分钟

「这是我参与11月更文挑战的第1天,活动详情查看:2021最后一次更文挑战

一.前言

数组这种数据结构在前端开发中很常见,下面我将对数组的一些方法进行总结归纳.

二.数组

1.数组的所有方法了

可以在浏览器开发者工具页面输入 Array.prototype回车就可以看到数组的所有方法了

image.png

2. 数组的分类

我将方法是否会修改原数组分为两类

2.1 修改原数组

  1. pop/push/shift/unshift
pop数组尾部删除元素返回值是删除的数组项
push在数组尾部添加元素返回值是数组的新长度
shift在头部删除元素返回值是删除的数组项
unshift在头部添加元素返回值是数组的新长度
var arr = [1,2,3]
var a = arr.push(5,6)        // a: 5,  arr: [1,2,3,5,6]
var b = arr.unshift(7,8)    // b: 7,  arr: [7,8,1,2,3,5,6]
var c = arr.pop()           // c: 6,  arr: [7,8,1,2,3,5]
var d = arr.shift()         // d: 7,  arr: [8,1,2,3,5]

感觉这题都能当面试题了,,,,,
  1. reverse 数组翻转
var arr = [1,2,3]
var r = arr.reverse()  // r: [3,2,1] , arr: [3,2,1]
返回值为修改后的数组
  1. sort 数组排序
var arr = [2,44,66,15,77,32]
var s = arr.sort((a,b) => a-b)  // 正序 s:[2, 15, 32, 44, 66, 77], arr:[2, 15, 32, 44, 66, 77]
var ds = arr.sort((a,b) => b-a) // 倒序 ds:[77, 66, 44, 32, 15, 2], arr:[77, 66, 44, 32, 15, 2]
  1. splice 语法:
array.splice(start[, deleteCount[, item1[, item2[, ...]]]] )

参数

-   start

    指定修改的开始位置(从0计数)。如果超出了数组的长度,则从数组末尾开始添加内容;
    
    如果是负值,则表示从数组末位开始的第几位(从-1计数,这意味着-n是倒数第n个元素并且等价于`array.length-n`);
    
    如果负数的绝对值大于数组的长度,则表示开始位置为第0位。

-   `deleteCount` 可选

    -   整数,表示要移除的数组元素的个数。
    -   如果 `deleteCount` 大于 `start` 之后的元素的总数,则从 `start` 后面的元素都将被删除(含第 `start` 位)。
    -   如果 `deleteCount` 被省略了,或者它的值大于等于`array.length - start`(也就是说,如果它大于或者等于`start`之后的所有元素的数量),那么`start`之后数组的所有元素都会被删除。
    -   如果 `deleteCount` 是 0 或者负数,则不移除元素。这种情况下,至少应添加一个新元素。

-   ` item1, item2, ...  ` 可选

    要添加进数组的元素,从`start` 位置开始。如果不指定,则 `splice()` 将只删除数组元素。

返回值

由被删除的元素组成的一个数组。如果只删除了一个元素,则返回只包含一个元素的数组。如果没有删除元素,则返回空数组。


摘自:  https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/splice

splice方法功能强大,可实现数组的增删改功能


var arr = [1, 2, 3];
// 增加
arr.splice(0,0,8,9); // arr: [8,9,1,2,3] 返回值:[]
//删除
arr.splice(0,3); // 从下标为0的元素开始,删除3个元素。 arr:[2,3], 返回值: [8,9,1] 
//修改(如果当前位有值,就先删后加; 无值就直接添加)
arr.splice(2,1,5);// arr: [2,3,5], 返回值:[]