push
(element1,…)定义:向数组的末尾追加元素,返回 length
新数组长度, 改变原数组
扩展:
栈
方法:后进先出 -> push + pop
队列
方法:先进先出 -> push + shift
var arr = [1,2,3];
var res = arr.push(4, 5);//5
console.log(arr);//[1,2,3,4,5]
unshift
(element1, …)定义:向数组的开头追加元素,返回 length
新数组长度, 改变原数组
var arr = [1,2,3];
var res = arr.unshift(4, 5);//5
console.log(arr);//[5,4,1,2,3]
pop
()定义:删除数组的最后一项,返回删除元素的值
, 改变原数组
注意:数组为空时,返回undefined
var arr = [1,2,3];
var res = arr.pop();//3
console.log(arr);//[1,2]
console.log([].pop());//undefined
shift
()定义:删除数组的开头一项,返回删除元素的值
, 改变原数组
注意:数组为空时,返回undefined
var arr = [1,2,3];
var res = arr.shift();//1
console.log(arr);//[2,3]
console.log([].pop());//undefined
splice
(start,deleteCount,element1,…)定义:实现数组指定位置的增加,修改,删除,并返回被移除的内容
,改变原数组
参数1:修改开始的位置
参数2:需要移除的数组元素个数,可选,省略
或大于后面的元素数
会移除后面所有元素
剩余参数:要添加的数组元素,可选
注意:没有移除数组元素时,返回[ ]
空数组
var arr = [1,2,3];
//增加
var res = arr.splice(3,1,4);//[]
console.log(arr);//[1,2,3,4]
//修改
var res1 = arr.splice(0,2,5,6);//[1,2]
console.log(arr);//[5,6,3,4]
//删除
var res2 = arr.splice(1,1);//[6]
console.log(arr);//[5,3,4]
var res3 = arr.splice(1);//[3,4]
console.log(arr);//[5]
方式1:arr.length–
方式2:arr.pop()
方式3:arr.splice(arr.length - 1)
方式4:delete arr[arr.length - 1]
方式1:arr.push(x)
方式2:arr[arr.length] = x
方式3:.arr.splice(arr.length, 0, x)
slice
(start,end)定义:数组的查询,并返回查询的新数组
参数1:查询开始的位置,为
负数
,表示数组中的倒数第几个元素
开始
参数2:查询终止的位置,可选,省略
或大于后面的元素数
会移除后面所有元素,为负数
,表示数组中的倒数第几个元素终止,为小数
,则会先进行向下取整
注意:arr.slice(0) 实现浅克隆
var arr = [1,2,3,4]
arr.slice(1);//[2,3,4]
arr.slice(1,2);//[2]
arr.slice(-2,-1);//3
arr.slice(-2,0);//[]
concat
(value1,…)定义:实现数组拼接,返回拼接后的新数组
参数:数组或值,不传参
数则相当于浅克隆
var arr = [1,2,3]
arr.concat(4);//[1,2,3,4]
arr.concat('a');//[1,2,3,'a']
arr.concat([4,5,6]);//[1,2,3,4,5,6]
arr.concat();//[1,2,3]
toString
()定义:把数组转换为字符串
var arr = [1,2,3];
arr.toString();//'1,2,3'
// 方法1:使用字符串的toString
function test(arr){
return arr.toString().split(',')
}
// 问题: 1.所有数据类型转换为字符串,如'function Date() {...}','()=>{...}'
// 2.undefined,null,[] 会转换成空字符串
// 3.Number,String,Boolean类型会被转成初始值
// 4.对象转化为 '[object Object]'
join
()定义:把数组转换为字符串
参数一:分隔符,可选,默认
逗号
分割
var arr = [1,2,3];
arr.join();//'1,2,3'
arr.join('*');//'1*2*3'
reverse
()定义:把数组倒过来排序,返回排列后的新数组
const reverse = (nums, start, end) => {
while (start < end) {
const temp = nums[start]
nums[start] = nums[end]
nums[end] = temp
start++
end--
}
return nums
}
reverse([1,2,3,4,5,6,7,8],0,4)//[5, 4, 3, 2,1, 6, 7, 8]