3.1 数组基础
利用数组字面量创建数组
//1. 使用数组字面量方式创建空的数组 var 数组名 = []; //2. 使用数组字面量方式创建带初始值的数组 var 数组名 = ['张三','李四','王五','赵六'];
数组的字面量是方括号 [ ]
声明数组并赋值称为数组的初始化
这种字面量方式也是我们以后最多使用的方式
利用 new 创建数组(了解)
var 数组名 = new Array() ;// 创建一个新的空数组
注意 Array () ,A 要大写
数组元素的类型
数组中可以存放任意类型的数据,例如字符串,数字,布尔值等。
var arr = ['张三',12,true,28.9];
获取数组中的元素
索引 (下标) :用来访问数组元素的序号(数组下标从 0 开始)。
数组可以通过索引来访问、设置、修改对应的数组元素,可以通过“数组名[索引]”的形式来获取数组中的元素。
// 定义数组 var arr = [1,2,3]; // 获取数组中的第2个元素 alert(arr[1]);
注意:如果访问时数组没有和索引值对应的元素,则得到的值是undefined
3.2 遍历数组
length属性:永远比索引小于1,可以通过length添加数组的新数据
// 数组 let arr = ['10', '11', '12'] console.log(arr) // 数组下标(索引、index),从0开始 // 访问数组数据 console.log(arr[0]) //10 // 修改数据 arr[0] = 13 console.log(arr[0]) //13 // 添加数据 arr[3] = 14 console.log(arr) arr[arr.length]=15 console.log(arr)
数组
// 遍历数组 for (let i = 0; i < arr.length; i++) { console.log(arr[i]) }
练习
// 1. let sum = 0 let arr1 = [1, 4, 55, 78, 34] for (let i = 0; i < arr1.length; i++) { sum += arr1[i] } console.log('数组元素的和为:' + sum, '平均值为' + sum / arr1.length) // 2. let arr2 = [34, 7, 4, 83, 73, 6] let max = arr2[0] for (let i = 0; i < arr2.length; i++) { if (max < arr2[i]) { max = arr2[i] } } console.log('数组最大值为:' + max) // 3. let arr3 = [4, 6, 87, 44, 667, 79, 4, 24, 65, 1] let arr3_1 = [] for (let i = 0; i < arr3.length; i++) { if (arr3[i] > 10) { arr3_1[arr3_1.length] = arr3[i] } } console.log(arr3_1) // 4. let arr4=[2,45,6,3,3,7,89,4,3,2,4,56,8] let arr4_1=[] for(let i=0;i<arr4.length;i++){ if(arr4[i]!==3){ arr4_1[arr4_1.length]=arr4[i] } } console.log(arr4_1) // 5. let arr5=[] for(let i=1;i<=10;i++){ arr5[arr5.length]=i } console.log(arr5) // 6. let arr6=['red','pink','blue','skyblue','hotpink','black','green'] let arr6_1=[] for(let i=arr6.length-1;i>=0;i--){ arr6_1[arr6_1.length]=arr6[i] } console.log(arr6_1)
3.3 判断数组
-
判断简单数据类型:typeof
-
判断一个变量是否是数组 Array.isArray(变量名)
-
判断变量是否是伪数组:instanceof
var arr=[1,2,4] var str='hello' console.log(Array.isArray(arr)) //true console.log(Array.isArray(str)) //false console.log(arr instanceof Array) //true console.log(str instanceof Array) //false console.log(str instanceof String) //false
3.4 数组方法
-
增-push、unshift
数组名.push(添加的数据):添加到数组最后面,返回值为添加元素后数组长度
给数组添加元素后,length属性和index都会增加
数组名.unshift(添加的数据):添加到数组最前面
给数组添加元素后,length属性和index都会变化
注意:是在原数组基础上修改的
-
删-pop、shift
数组名.pop():删除数组最一个元素,返回值为删除的元素
数组名.shift():删除数组第一个元素,返回值为删除的元素
注意:是在原数组基础上修改的
-
数组翻转-reverse
数组名.reverse()
var arr=[1,2,3,4,5,6] console.log('arr:'+arr) console.log('arr翻转后为:'+arr.reverse())
-
数组排序-数组名.sort()
数组名.sort() 方法需要传入参数来设置升序、降序排序
-
如果传入“function(a,b){ return a-b;}”,则为升序
-
如果传入“function(a,b){ return b-a;}”,则为降序
var arr = [2, 3, 6, 1, 8] console.log('arr:' + arr) console.log(arr.sort(function (a, b) { return a - b; })) // [1, 2, 3, 6, 8] console.log(arr.sort(function (a, b) { return b - a })) // [8, 6, 3, 2, 1]
-
-
查找元素的索引-indexOf
查找元素的索引,从前向后查找,有相同元素只能返回第一个相同的元素,未找到返回-1
数组名.lastIndexOf():从后向前查找
var arr = [2, 3, 6, 2, 1, 8] console.log(arr.indexOf(2)) //0 console.log(arr.indexOf(0)) //-1 console.log(arr.lastIndexOf(2)) //3
-
数组转化为字符串方法-join()
数组名.join():括号内什么都不写,默认以逗号分隔转化为字符串
var arr = [2, 3, 6, 2, 1, 8] console.log(arr.join()) //2,3,6,2,1,8 var arr1 = [2, 3, 6, 2, 1, 8] console.log(arr1.join('-')) //2-3-6-2-1-8
-
将字符串转化为数组-split()
字符串的变量名.split(符号):括号内的特殊符号需要改成字符串中每个元素的分隔符号,才能转换
var str='1,2,3,4' console.log(str.split(',')) // ['1', '2', '3', '4']