以前学习的数据类型,只能存储一个值(好比:Number/String)。我想在一个变量中存储多个值,应该如何存储?数组
所谓数组,就是将多个元素(一般是同一类型)按必定顺序排列放到一个集合中,那么这个集合咱们就称之为数组。函数
// 字面量方式建立数组 var arr1 = []; //空数组 // 建立一个包含3个数值的数组,多个数组项以逗号隔开 var arr2 = [1, 3, 4]; // 建立一个包含2个字符串的数组 var arr3 = ['a', 'c']; console.log(arr1); console.log(arr2); // 构造函数方式建立数组 var a1 = new Array(); //空数组 var a2 = new Array('1',2,'h'); //包含三个元素的数组 console.log(a1); console.log(a2); // 能够经过数组的length属性获取数组的长度 console.log(arr3.length); // 能够设置length属性改变数组中元素的个数 arr3.length = 0; console.log(arr3[0]);//undefined
思考:二维数组什么样?学习
特别注意:JS中不像PHP,没有关联数组.code
// 格式:数组名[下标] 下标又称索引 // 下标从0开始 // 功能:获取数组对应下标的那个值,若是下标不存在,则返回undefined。 var arr = ['red',, 'green', 'blue']; arr[0]; // red arr[2]; // blue arr[3]; // 这个数组的最大下标为2,所以返回undefined
遍历:遍布全部,对数组的每个元素都访问一次就叫遍历。索引
for循环数组遍历的基本语法:字符串
for(var i = 0; i < arr.length; i++) { // 数组遍历的固定结构 }
for循环示例:console
var arr1 = [1, 3, 4]; for(var i = 0;i<arr1.length;i++){ console.log(arr1[i]); }
whil循环示例:for循环
var arr1 = [1, 3, 4]; var i = 0; while(i<arr1.length){ console.log(arr1[i]); i++; }
// 格式:数组名[下标/索引] = 值; // 若是下标有对应的值,会把原来的值覆盖,若是下标不存在,会给数组新增一个元素。 var arr = ["red", "green", "blue"]; // 把red替换成了yellow arr[0] = "yellow"; // 给数组新增长了一个pink的值 arr[3] = "pink";
案例1:求数组中的全部数的和class
//求和 var arr = [10, 20, 30, 40, 50]; //定义变量存储和 var sum = 0; for (var i = 0; i < arr.length; i++) { sum += arr[i]; } console.log("和为:" + sum);
案例2:获取数组中的最大值变量
//最大值 var arr = [10, 20, 30, 40, 50, 60]; //假设这个变量中的值是最大的 var maxNum = arr[0]; //遍历数组 for (var i = 0; i < arr.length; i++) { //判断 if (maxNum < arr[i]) { maxNum = arr[i]; } } console.log("最大值是:" + maxNum);
案例3: 遍历出数组中全部的偶数
// 遍历出数组中全部的偶数 var arr = [1,2,3,4,5,6,7]; for(var i=0;i<arr.length;i++){ //判断 if(arr[i]%2==0){ console.log(arr[i]); } }
案例4:将数组转为字符串并以 | 分割
//把数组中的每一个名字后面拼接一个|而后以字符串的方式输出 var names = ["卡卡西", "佐助", "凤姐", "鸣人", "黑山老妖"]; var str = "";//空的字符串,用来存储最后的拼接的结果的字符串 //不停的遍历数组的数据,而且拼接字符串 for (var i = 0; i < names.length - 1; i++) { str += names[i] + "|";//拼接字符串的方式 } str += names[names.length - 1]; console.log(str);