Array对象方法

1.pop()

定义: 删除并返回数组最后一个元素
语法: arrayObject.pop()
返回值: arrayObject的最后一个元素
说明:pop() 方法将删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值

2.join()

定义: 把数组中的所有元素放在一个字符串中,元素间通过指定的分隔符分隔
语法: arrayObject.join(separator)
返回值: 字符串
说明: 该方法把arrayObject的每个元素转换成字符串,然后再把这些字符串连接起来,每个元素之间插入separator分隔符

3. slince()

定义: 从已有的数组中返回指定的元素
语法:arrayObject.slice(start, end) arrayObject.slice(start)
参数:该参数为数组下标,从0开始。
start 必需。规定从何处开始选取。若为负数,则从数组尾部开始算,如-1指的是最后一元素。
end 可选。规定从何处结束选取。若没有指定这个参数,则切分的数组包含从start到数组结束的所有元素。若为负数,则从数组尾部开始算起的元素
返回值:返回一个新的数组,包含从start到end(不包括该元素)的arrayObject中的元素。
说明:该方法不会修改数组,只是返回一个子数组。如果想删除数组中的一段元素,应该使用方法 Array.splice()

4. push()

定义:push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度 语法:arrayObject.push(newelement1,newelement2,....,newelementX) 参数: newelement1,必需。要添加到数组的第一个元素。newelement2,可选。要添加到数组的第二个元素。newelementX,可选。可添加多个元素 返回值: 把指定的值添加到数组后的新长度 说明:push() 方法可把它的参数顺序添加到 arrayObject 的尾部。它直接修改 arrayObject,而不是创建一个新的数组。push() 方法和 pop() 方法使用数组提供的先进后出栈的功能

5. shift()

定义 删除数组中的第一个元素,并返回第一个元素的值
语法 arrayObject.shift()
返回值
数组原来的第一个值

6. unshift()

**定义**:向数组的开头添加一个或更多元素,并返回新的长度 **语法**:arrayObject.unshift(newElement1, newElement2, ..., newElementX) **参数**:newElement1 必需。向数组添加的第一个元素。newElement2 可选。向数组添加的第二个元素。 **返回值**:返回arrayObject的新长度。 说明:该方法直接修改原有的数组。把参数插入arrayObject的头部,并将已存在的元素顺次地移到较高的下标处,以便留出空间。该方法的第一个参数将成为数组的新元素 0,如果还有第二个参数,它将成为新的元素 1,以此类推

7. splice()

定义: splice()方法向/从数组中添加/删除项目,然后返回被删除的项目
注释: 该方***改变原数组
语法:

arrayObject.splice(index,howmany,item1,…,itemX)

参数 描述
index 必需,整数,规定添加/删除项目的位置,使用负数可以从数组结尾处规定位置
howmany 必需,要删除的项目数量。如果设置为0,则不会删除项目
item1,… ,itemX 可选,向数组添加的新项目

返回值

类型 描述
Array 包含被删除项目的新数组,如果有的话

示例

let arr = ['Jom','Faker','Uzi','Clearlove','Knight']

let delArr = arr.splice(1,2)  
console.log(delArr,arr);
//["Faker", "Uzi"],["Jom", "Clearlove", "Knight"]
let delArr2 = arr.splice(1,2,'Doinb')
console.log(delArr2,arr);
// ["Clearlove", "Knight"],["Jom", "Doinb"]

8. sort()

看了很多关于sort()函数的定义和解释还是不太清楚,尤其是初学者很容易看懵,这里讲讲自己是如何理解的
首先,要理解sort()内部是利用递归进行冒泡排序的
例如:

var arr = [1, 5, 4, 2];

sort()方法的比较逻辑为:
第一轮:1和5比,1和4比,1和2比
第二轮:5和4比,5和2比
第三轮:4和2比
其次,sort()方***接受一个比较函数compare(a, b),该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。

最后,永远要记住一句话,凡是返回1或者大于0的正数的时候就要交换位置。(内部实现)
例如

var arr = [1, 5, 4, 2];

现在要进行升序排列,从左到右的数组项关系最终应该为: a < b < c < d
所以只要在当a大于b的时候去交换它们的位置就好了

if(a > b ) {
   
    return 1;
}

简化后

// 升序
return a - b;
// 倒序
return b - a;

例如:
理解sort()排序原理