数组
数组用于在单个变量中存储多个值
1.创建数组
let arr=[] 空数组
let arr2 =new Array(); 空数组
let arr3 =new Array(10) 包含10个未定义元素的数组
let arr4 =new Array(1,2) 包含1和2两个元素的数组
2.访问数组
let arr=[1,2,3]'
通过下标
arr[0] //输出1
为数组赋值
arr[0]=2 //输出[2,2,3]
3.辨别数组
let arr=[]
console.log(`
typeof: ${typeof(arr)}
isArray: ${Array.isArray(arr)}
instanceof: ${arr instanceof Array}
`);
//输出
typeof: object
isArray: true
instanceof: true
可以看到数组用typeof返回的值是Object
所以要用其他方法分辨
方案1
可以使用 Array.isArray(array)
方案2
array instanceof Array
4.数组方法
1. push,unshift,splice,直接赋值添加(更改原数组)
为数组添加元素
let arr=[1,2,3,4]
//push()为数组最后添加元素 多个参数以,隔开可以给数组添加多个元素 返回新数组的长度
arr.push("push")
//unshift()为数组开头添加元素 多个参数以,隔开可以给数组添加多个元素 返回新数组的长度
arr.unshift("unshift")
console.log(arr); //输出['unshift', 1, 2, 3, 4, 'push']
//splice(参数1,参数2,...参数3) 从参数1开始,删除参数2个元素,参数3可以有多个参数一次添加
arr.splice(0,0,254,6,2)//从0位开始删除0个,并且添加254,6,2三个元素
console.log(arr); //[254, 6, 2, 'unshift', 1, 2, 3, 4, 'push']
//直接赋值 最好不用,如果按顺序不出问题,如果给超出数组长度2位和以上的下标赋值,超出多少位就会出现多少空元素
arr[6]=5
console.log(arr); //['unshift', 1, 2, 3, 4, 'push', 5]
arr[9]=6
console.log(arr); //['unshift', 1, 2, 3, 4, 'push', 5, 空白,空白, 6]
2.删除 pop,shift,splice(更改原数组)
array.pop();//删除最后一个元素,并返回该元素
array.shift();//删除第一个元素,数组元素位置自动前移,返回该元素
array.splice(参数1,参数2);//从参数1开始,删除参数2个元素
与添加用法一致
//delete array[index] 虽然可以删除 但是会留下空元素,如下图,挺诡异的
delete arr[0]
3.翻转数组reverse(更改原数组)
reverse()让数组顺序反转
console.log(arr) //输出[254, 6, 2, 'unshift', 1, 2, 3, 4, 'push']
arr.reverse()
console.log(arr) //输出['push', 4, 3, 2, 1, 'unshift', 2, 6, 254]
4.数组排序sort(更改原数组)
sort 默认排序 正序
let arr=[1,5,3,2]
let arr2=["21","3"]
console.log(arr.sort()) 输出[1, 2, 3, 5]
console.log(arr2.sort()) 输出['21', '3']
但是字符串只看第一位大小,所以可以通过函数
console.log(arr2.sort(function(a,b){return a-b})) 输出['3', '21']
5.截取数组部分slice(不更改原数组)
let arr=[1,2,3,4,5,6]
let sliceArr = arr.slice(1, 4);
console.log(sliceArr);//输出 [2, 3, 4]
6.拼接数组(concat,… 不更改原始数组)
let arr=[1,2]
let arr2=[3,4]
//concat()可以传入多个数组拼接
let concatArr=arr.concat(arr2)
console.log(concatArr); //[1, 2, 3, 4]
//... Es6的新写法
console.log([...arr,...arr2]);//[1, 2, 3, 4]
7.控制台特别的输出数组方法 console.table()
let arr=[1,2,3,4,5,6]
console.table(arr)