数组是值的有序集合。数组中的每一个值叫作一个元素,而每一个元素在数组中都右一个惟一的位置。这个位置用数字表示,叫作索引数组;用字符串表示,叫作关联数组。
JavaScript数组是无类型的;数组的元素能够是任何的类型(字符串,数字值,布尔值等),而且每一个数组的不一样元素多是不一样的类型。
JavaScript数组是动态的:根据须要,能够动态地向数组插入新的元素,或者从数组中删除指定的元素程序员
语法:数组
var 数组名称 = [元素1,元素2,...]
示例代码:函数
var arr1 = [];/*定义一个空数组*/ var arr2 = [100,'星矢',true]; console .log(arr1);/*输出结果为:[]*/ console .log(arr2);/*输出结果:[100,'星矢',true]*/
语法:code
var 数组名称 = new Array (元素1,元素2,...); var 数组名称 = new Array (length);/*length是number类型 表示数组的长度(存在的元素个数)*/
示例代码:索引
var arr1 = new Array ();/*定义一个空数组*/ var arr2 = new Array (100,'星矢',true); var arr3 = new Array (length); console .log(arr1); 输出结果:[100,'星矢',true]*/ console .log(arr2); /*输出结果:*/ console .log(arr3); /*输出结果:[ <10 empty items> ]*/
语法:ip
var 数组名称 = Array(元素1,元素2,元素3...); var 数组名称 = Array(length);
示例代码:
var arr1 = Array(100,5,2,);
var arr2 = Array(5);
console .log(arr1);/输出结果:[ 100, 5, 10 ]/
console .log(arr2);/输出结果:[ <50 empty items> ]/字符串
索引数组就是存储元素的位置使用数字值来表示,通常称之为下标或角标。数组的长度与元素的个数是一致的,数字是以0开头的。
示例代码以下:it
var arr = []; arr[0]='索引数组'; arr[1]=100; arr[2]=true; console .log(arr);/*输出结果为: ['索引数组',100,true]*/
注意:关联数组的数组的长度与元素的个数不一致,缘由是JavaScript的官方不支持关联数组。console
var arr = [];/*定义一个空数组*/ arr['who']='谁啊' arr['what']='啥啊' arr['how']='咋的了' console .log(arr);/*输出结果:[ who: '谁啊', what: '啥啊', how: '咋的了' ]*/
索引数组的位置容许不连续的,没有定义的元素的位置默认为空(undefined),这样的数组叫作稀疏数组,数组的长度与元素的个数是不同的。
示例代码:循环
var arr = []; arr[0]='谁啊'; arr[5]='啥啊'; arr[6]='咋的了'; console .log(arr); console .log(arr.length);/*输出的结果为: [ '谁啊', <4 empty items>, '啥啊', '咋的了' ] 7 */
将稀疏数组进行处理,获得正常的索引数组
var newArr=[]; for (var i=0; i<arr.length; i++){ if(arr[i] !== undefined){ newArr.push(arr[i]); } } console .log(newArr);
示例代码以下:
// 定义数组的默认为索引数组 var arr = ['索引数组',100,null]; // 调用数组名称时,获得只是存储全部元素数据的集合 console.log(arr); // 访问索引数组中的元素 -> 数组名称[索引值] console.log(arr[0]); // 若是访问了数组中未定义的位置的元素时 - 语法不抱错,结果为 undefined console.log(arr[5]); // 索引数组中索引值最大为 arr.length - 1 // JavaScript中的关联数组定义与访问都是没有问题的 var arr1 = []; arr1['name'] = 'Chambers'; arr1['age'] = 23; arr1['job'] = '学生'; console.log(arr1['name']);
示例代码:
var arr1 = []; arr1[0] = '卧龙学苑'; arr1[1] = true; // 关联数组 var arr2 = []; arr2['name'] = '张无忌'; arr2['age'] = 19; arr2['job'] = '教主'; // 经过数组的索引值找到对应元素的位置,再经过从新赋值的操做进行修改 arr1[0] = 100; console.log(arr1); arr2['name'] = '周芷若';2176491621 console.log(arr2); // 若是索引值是新的,就是新增数组的元素操做 arr1[4] = '卧龙学苑'; console.log(arr1);
var arr1 = []; arr1[0] = '卧龙学苑'; arr1[1] = true; // 关联数组 var arr2 = []; arr2['name'] = '张无忌'; arr2['age'] = 19; arr2['job'] = '教主'; /* 使用 delete 运算符进行删除数组的元素 * 注意 - 只是删除元素的数据内容,而对应的位置被保留 -> 稀疏数组 */ delete arr1[0]; console.log(arr1);
var arr = ['卧龙学苑', 100, true, undefined]; for (var i=0; i<arr.length; i++) { console.log(arr[i]); }
在ECMAScript5中新增了for...in语句 一样可用于遍历数组
for...in语句还能够用于遍历稀疏数组 循环的每次将一个有效元素返回
for语句: 循环的开始和结束 都是由程序员决定的
for..in语句: 循环只能从开始到结束
var arr = ['卧龙学苑', 100, true, undefined]; for (var i in arr) { console.log(arr[i]); }
数组是能够嵌套的,这就意味着数组能够做为一个元素被包含在另一个数组里面,利用JS这个特色建立二维数组,即数组的数组。
var arr = [];// 定义一个空数组 arr[0] = [100,200,300]; arr[1] = [400,500,600]; arr[2] = [700,800,900]; // console.log(arr); // 访问二维数组中的元素 var result = arr[0]; /*console.log(result[0]); console.log(arr[0][0]);*/ // 循环遍历二维数组 for (var i=0; i<arr.length; i++) { console.log(arr[i]); for (var j=0; j<arr[i].length; j++) { console.log(arr[i][j]); } }