js - 数组
简介
数组
1、存储数组中的元素,语法:数组名[下标] = 值
2、读取数组中的元素,如果读取不存在的索引,不会报错而是返回undefined
3、获取数组的长度,语法:数组名.length
1)对于连续的数组,使用length可以获取到数组的长度(元素的个数)
2)对于非连续的数组,使用length会获取到数组的最大索引+1
3)修改length
- 如果修改的length大于原长度,则多出部分会空出来
- 如果修改的length小于原长度,则多出的元素会被删除
数组的方法
1、push()
- 该方法可以向数组末尾添加一个或多个元素(即参数),并返回数组的长度,原数组发生改变
2、pop()
- 该方法可以删除并返回数组的最后一个元素,原数组发生改变
3、unshift()
- 该方法向数组的开头添加一个或多个元素(即参数),并返回数组的长度,原数组发生改变
4、shift()
-该方法可以删除并返回数组的第一个元素,原数组发生改变
5、slice()
-该方法可以截取数组中的元素,返回截取元素组成的数组,原数组不发生改变
-第一个参数为start,即截取开始的位置
-第二个参数为end,即截取结束的位置(不包括)
-第二个参数省略不写时,会截取到从开始位置索引到数组末尾
-第二个参数可以为负数,即从后往前查,-1为最后一个,-2为倒数第二个,以此类推
6、splice()
-该方法可以截取数组中的元素,返回截取元素组成的数组,原数组发生改变
-第一个参数为start,即截取开始的位置
-第二个参数为len,即截取的长度
-第三个及以后的元素,即要在截取开始位置插入的元素
7、concat()
-该方法可以连接两个或多个数组(参数),并将新数组返回,原数组不发生改变
8、join()
-该方法可以将数组转换为一个字符串,用特定的字符(即参数,默认为',')进行分隔,将转换后的结果返回,原数组不发生改变
9、reverse()
-该方法可以将数组进行反转,返回反转后的数组,原数组发生改变
10、sort()
-对数组进行排序,返回排序后的数组,原数组发生改变
-默认按照Unicode编码进行排序
-对数字进行排序时,需要传入参数(即一个函数(回调函数,浏览器会根据回调函数的返回值决定元素的顺序,
1)如果返回一个大于0的值,则元素交换位置
2)如果返回一个小于0的值,则元素位置不变
3)如果返回一个0,则认为两个元素相等,也不交换位置))
-升序:sort(function(a, b){
return a - b;
})
-降序:sort(function(a, b){
return b - a;
})
实例
<script>
let array = [1, 2, 3];
array.push(4);
array.push(5, 6);
console.log("push()方法:")
console.log(array);
array.pop();
array.pop();
console.log("pop()方法:")
console.log(array);
array.unshift('a');
array.unshift('b');
console.log("unshift()方法:")
console.log(array);
array.shift();
console.log("shift()方法:")
console.log(array);
let newArray1 = array.slice(1, 3);
console.log("slice()方法:")
console.log(newArray1);
console.log(array);
let newArray2 = array.splice(1, 2);
console.log("splice()方法:")
console.log(newArray2);
console.log(array);
let newArray3 = array.splice(0, 2, 'x', 'y');
console.log(newArray3);
console.log(array);
let array2 = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
let newArray4 = array.concat(array2, 'h', 'i');
console.log("concat()方法:")
console.log(array)
console.log(newArray4)
let str = array.join();
console.log("join()方法:")
console.log(str)
console.log(array)
let newArray5 = array.reverse();
console.log("reverse()方法:")
console.log(newArray5);
console.log(array);
</script>