定义
多个数据的组合,节省变量
创建数组
字面量创建数组: var arr = [1, 2, 3, 4, 5, 6]; 在一个数组中对于数据的类型没有要求
构造函数创建对象: var arr = new Array(1, 2, 3, 4,‘a’);(构造函数首字母大写)
注意:以上两种最终都是对象,一切皆对象
访问数组
通过数组的下标(索引值)
设置数组元素的值
也是通过数组的下标(索引值)
arr[ 0] = '安慕希';
arr[2] = '中国';
数组的类型
typeof arr == object
属性
数组长度 ---------------------------------------- ---------------------arr.length 值为number类型的
计算数组的最小下标和最大下标 -------------------------------------- 0 arr.length-1
数组遍历
思想:通过arr.length 来获取数组的长度, 来计算数组的最大下标
应用1:数组元素的累加求和
思想,找到每一项,加到一起,需要遍历数组 sum = sum +arr[i]
求有效数字的方法: toFixed(2);
应用2:求数组的最大值、最小值、以及最值在数组中的位置
清空数组
数组中灭有元素的时候,数组的长度为0 所以清空数组 使用arr.length;
向数组中添加元素
通过数组名[下标]赋值,并且数组的长度动态的增加
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[arr.length] = 数据
ar.length永远指向数组中最后一个元素的后面一个位置
应用1、筛选元素添加到新数组中
需求:将数组中不为零的数组添加到新数组中var n = [1,2,0,3,0,4,0,9,0];var arr = [];for( var i = 0; i < n.length; i++) { if( n[i] != 0) { arr[arr.length] = n[i]; }}console.log(arr);复制代码
应用2:翻转数组
function reverse(arr) { var newArr = []; for ( var i = arr.length-1; i >= 0; i--) { newArr[newArr.length] = arr[i]; } return newArr;}var arr = [1,2,3,4,5];reverse(arr);复制代码
二维数组(js中不存在这样的名字,其他语言中有这个叫法)-------------------复杂数组
访问数组中的元素
var arr = [ [1,2,3], [4,5,6], [7,8,9]]console.log(arr[0])console.log(arr[1])console.log(arr[2])// 以上访问的是每一行 也就是三个一维数组console.log(arr[0][0])// 访问具体的某个数复制代码
求二维数组中所有数的和
var sum = 0;var arr = [ [1,2,3], [4,5,6], [7,8,9]];for(var i = 0; i < arr.length; i++) { var s = 0; for(var j = 0; j < arr[i].length; j++) { s = s + arr[i][j]; } sum = sum + s; }// 方式2for(var i = 0; i < arr.length; i++) { for(var j = 0; j < arr[i].length; j++) { sum = sum + arr[i][j]; }}复制代码
(二维数组,逻辑,偏难)定义一个二维数组(3行4列),输入任意12个数值,求该数组的平均值,最大值,最小值,两个下标均为奇数的数的和
var arr = [ [1,2,3], [4,5,6], [7,8,9]]// 求平均值var sum = 0;var s = 0;var count = 0;var max = arr[0][0];var min = arr[0][0];for (var i = 0; i < arr.length; i++) { for (var j = 0; j < arr[i].length; j++) { if (min > arr[i][j]) { min = arr[i][j] } if (max < arr[i][j]) { max = arr[i][j] } if (i == j) { s = s + arr[i][j]; } sum = sum + arr[i][j]; count ++ }}console.log("平均值是:"+sum/count)console.log("最小值是:"+min);console.log("最大值是:"+max);console.log("下标相等的元素的和:"+s);//输出结果为//平均值是:5//28 最小值是:1//29 最大值是:9//30 下标相等的元素的和:15复制代码
学习心得:
要围绕着增删改查的概念去学习数组,围绕着循环结构数组的属性(length属性,访问方式)来使用数组;
作者:张敬辉