<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>数组的操作(添加、删除、替换)</title>
</head>
<body>
<script>
var arr1 = [1,2,3,4];
console.log(arr1.length); //打印:4
/*
push,往数组的末尾添加一个或多个元素,返回当前被修改后的数组的最新长度
该方法会改变原数组
*/
var res = arr1.push(4,5,6,7);
console.log(res); //打印:8
console.log(arr1); //打印:[1, 2, 3, 4, 4, 5, 6, 7]
/*
pop 用于删除数组中最后的一位元素
返回被删除的这个元素,用在一个空数组上,返回值会是undefined
*/
var arr2 = ['a','b','c',6,7,8,9,0];
var res = arr2.pop();
console.log(res); //打印:0
var arr3 = [];
console.log(arr3.pop()); //打印:undefined
/*
unshift
将一个或多个元素添加到数组的开头
*/
var arr4 = [1, 2, 3,4];
var res = arr4.unshift(4,5,6,7);
console.log(arr4); //打印: [4, 5, 6, 7, 1, 2, 3, 4]
console.log(res); //打印:8
/*
shift - 用于删除数组中的第一位
如果是一个空数组,返回undefined,如果不是,则返回被删除的元素
*/
var arr5 = ['a','b','c',6,7,8,9,0];
var res = arr5.shift();
console.log(res); //打印:a
console.log(arr5); //打印:['b','c',6,7,8,9,0]
var arr6 = [];
console.log(arr6.shift()); //打印:undefined
/*
splice(start[,num,item1,item2...])
- start:删除的起始位置
如果start大于length,就是不删除。
如果是一个负数(负数的绝对值超过了length,则起始位置被设定为length),从右到左查找对应的起始位置
length + (start)
- num:可选,默认删除到数组的末尾。表示删除的个数
如果小于0,或者是NaN,则当做0进行处理,不删除任何元素
- item1,item2... 从删除的位置,添加第二个参数以后的内容
返回值是所有删除的元素,组成的数组,如果没有删除任何元素,将会得到一个空数组
*/
var arr7 = [1,2,3,4,5,6,7,8,9,10];
//删除
arr7.splice(1,2);
console.log(arr7); //打印:[1,4,5,6,7,8,9,10]
//替换
arr7.splice(1,2,'b','c');
console.log(arr7); //打印:[1, "b", "c", 6, 7, 8, 9, 10]
arr7.splice(50);
console.log(arr7); //打印:[1, "b", "c", 6, 7, 8, 9, 10]
arr7.splice(-2);
console.log(arr7); //打印:[1, "b", "c", 6, 7, 8]
arr7.splice(1,-10);
console.log(arr7); //打印:[1, "b", "c", 6, 7, 8]
// 添加,如果不删除元素,但是又存在第三个或者3+的参数,就会有添加的功能
arr7.splice(1,0,'a','b','c');
console.log(arr7); //打印:[1, "a", "b", "c", "b", "c", 6, 7, 8]
//返回值
console.log(arr7.splice(1, 3)) //打印:["a", "b", "c"]
console.log(arr7.splice(1, 0, 'a', 'b', 'c')); //打印:[]
</script>
</script>
</body>
</html>