数组是大多数语言里面最常见的一种数据结构,它是一个有序的值列表。
创建数组
1.创建字面量数组 let arr=[]; 2.创建构造函数数组 let arr=new Array(); 注:无论是字面量形式数组,还是构造函数数组,当我们要使用typeof打印数据类型时,都会返回一个object
例:
let arr1 = []; let arr2 = new Array(); console.log(typeof arr1);//object console.log(typeof arr2);//object
赋值
1.先声明再赋值 let arr = []; arr[0] = 1; arr[1] = 2; arr[2] = 3; 注(重要!!!):数组的下标是从0开始的。 2.声明直接赋值 let arr = [1,2,3,4,5]; 注:我们可以在数组任意位置进行赋值,数组长度会自动改变,空的位置使用undefined填充。
例:
let arr = []; arr[0] = 1; arr[4] = 10; console.log(arr); //[ 1, <3 empty items>, 10 ]
访问
例:
let arr = [1,2,3,4,5]; console.log(arr[0]);//1 //访问下标为0的值,也就是数组的第一个数 除了这种方式,我们还可以使用变量的方式来访问 例2: let arr = [1,2,3,4,5]; let i = 2; console.log(arr[i]);//3
删除
我们可以用delete来删除数组的某一个元素,但删除的元素位置不会消失,会有个替代: let arr = [1,2,3,4,5]; delete arr[2];//删除数组中的第3个元素; console.log(arr); //[ 1, 2, <1 empty item>, 4, 5 ]
遍历
1.for循环遍历 使用最多的一种遍历方法,
例:
let arr = [1, 2, 3, 4, 5]; for (let i=0;i<arr.length;i++) { console.log(arr[i]); }// 1 // 2 // 3 // 4 // 5
2.for-in遍历 for-in主要迭代的是数组的键,然后我们通过键就可以找到相应的数组元素。
例:
let arr = [1, 2, 3, 4, 5]; for (let i in arr) { console.log(键为{i}的元素值为${arr[i]}); } // 键为0的元素值为1 // 键为1的元素值为2 // 键为2的元素值为3 // 键为3的元素值为4 // 键为4的元素值为5 注(再次声明!!!):数组的下标是从0开始.
3.for-of遍历 for-of是直接迭代数组的值
例:
let arr = [1, 2, 3, 4, 5]; for (let i of arr) { console.log(i); }// 1 // 2 // 3 // 4 // 5
4(扩展).forEach遍历 forEach涉及到了回调,目前并不说回调内容: let arr = [1,2,3,4,5,6,7,8,9,10]; //将数组的每一项传入到回调函数,然后执行回调函数里面的操作 let i = arr.forEach(function(item){ console.log(item); });
5.使用迭代器遍历 在ES6中,还专门提供了三个使用迭代可迭代的元素方法,分别是keys(),values()和entries()。
(1)keys()它便利出的是数组的键
例:
let arr = [3,5,8,1]; for(let i of arr.keys()){ console.log(i); } // 0 // 1 // 2 // 3 (2)entrise()遍历出的是数组的键和值
例:
let arr = [3,5,8,1]; for(let i of arr.entries()){ console.log(i); } // [ 0, 3 ] // [ 1, 5 ] // [ 2, 8 ] // [ 3, 1 ]
(3)values()它可以找到可迭代元素的值 注:数组内部无法使用values()方法
解构
在JS中,解构数组就是讲一个复杂类型的数据分解为一个普通类型的数据。
例:
let arr = [1,2,3]; let [a,b,c] = arr; console.log(a);//1 console.log(b);//2 console.log(c);//3 在其中,可以使用,跳过不想解构的数组
例:
let arr = [1,2,3];
let [a,,b] = arr; console.log(a);//1 console.log(b);//3
多维数组