1、push/unshift 追加
返回值:执行了方法以后的数组长度
arr.push(2,3,4);
arr.unshift(1,2,3);
// push底层实现
Array.prototype.myPush = function() {
for(var i = 0; i < arguments.length; i++) {
this[this.length] = arguments[i];
}
return this.length;
}
2、pop/shift 删除
返回剪切的元素,没有参数
3、reverse
返回反转之后的数组
4、splice
arr.splice(开始的下标,删除的长度,要添加的数据)
var arr = ['a', 'b', 'c', 'd'];
arr.splice(1, 2, 2, 3);
console.log(arr); // ['a', 2, 3, 'd']
// 下标也可以是负值,通过下标找元素的实现原理
function splice(arr, index) {
return index += index >= 0 ? 0 : arr.length;
}
console.log(arr[splice(arr, -1)]);
5、sort
返回排序以后的数组
// 不传参的时候,是按照ascii码来排序的
arr.sort()
/** 如果要按照数字大小排,必须满足两个条件
- 1) 参数 a,b
- 2) 返回值:1、负值,a就排前面
- 2、正值,b就排前面
- 3、0,保持不动
**/
arr.sort(function(a, b){
if (a > b) {
return 1;
} else {
return -1;
}
// return a - b;
})
总结:
修改原数组的方法:
- push/unshift
- pop/shift
- reverse
- splice
- sort