什么是数组

数组是值的有序集合。数组中的每个值叫一个元素,每个元素在数组中都有一个唯一的位置。这个位置用数字表示叫索引数组;用字符串表示叫关联数组。
数组的元素可以是不同的类型
可以动态的向数组差人新元素,或者删除指定元素

一维数组

定义数组

定义数组的方式有三种

/*数组字面量方式定义数组*/
var arr1 = []//空数组
var arr2 = [2,'',true] //数组内元素可以是不同的类型
console.log(arr2)

var arr3 = [3]//数组元素为3
console.log(arr3)

/*数组函数方式定义数组*/
var arr4 = Array()//空数组
var arr5 = Array(3)//当只有一个元素且为数字时,表示数组的长度

/*构造函数方式定义数组*/
var arr6 = new Array()//空数组
var arr7 = Array(3)//当只有一个元素且为数字时,表示数组的长度

索引数组

/*
    *索引数组-数组中元素的位置用数字表示,称之为下标或角标
    *下标是从0开始
     *数组的长度与元素的个数一致 */
var arr = [];//定义一个空的数组
arr[0] ='化物语';
arr[1] ='伪物语';
arr[2] ='猫物语';
    console.log(arr.length);//判断数组的长度

关联数组

/*
*   关联数组中的元素是用字符串表示
*   */
var arr = [];
arr['name'] ='西尾维新';
arr['job'] ='作家';
//输出结果
   /* [ name: '西尾维新', job: '作家' ]*/

/*关联数组的长度与元素的个数不一致
* 原因:官方不支持关联数组*/
console.log(arr.length);//输出为0

稀疏数组

/*当索引数组的位置不连续,没有定义元素的位置为(undefined)
*  稀疏数组:数组长度与元素数目不一致的索引数组*/
var arr = [];
arr[0] ='化物语';
arr[2] ='伪物语';
arr[5] ='猫物语';
console.log(arr);
/*输出结果
* [ '化物语', <1 empty item>, '伪物语', <2 empty items>, '猫物语' ]
*/
//* empty item等价于undefined

数组元素的读取

var arr = ['化物语',23,true];
/*调用数组名称,得到的是元素数据集合-[ '化物语', 23, true ]*/
console.log(arr);
/*调用元素->数组名称[索引值] -化物语*/
console.log(arr[0]);
/*调用没有定义位置的元素,结果为undefined*/
console.log(arr[4]);

数组元素的修改

/*定义索引数组*/
var arr1 = [];
arr1 [0] ='化物语';
arr1 [1] ='23';
/*定义关联数组*/
var arr2 = [];
arr2 ['name'] = '伤物语';
arr2 ['age'] = '233';
//通过数组索引值找到对应元素的位置,重新赋值
arr1[0] = '伪物语';
console.log(arr1[0]);//伪物语
arr2['name'] = '猫物语';
console.log(arr2['name']);//猫物语

/*对于数组中没有的索引值,就是重新增添一个元素*/
arr1[3] = '浮生六记';
console.log(arr1[3]);//浮生六记

数组元素的删除

/*delete运算符用来删除数组的元素
* 对于索引数组被删除的元素只是删除数据内容,位置会被保留
* 索引数组变为稀疏数组
 */
var arr = [];
arr[0] = '化物语';
arr[1] = '国风';
delete arr[0];
console.log(arr[0]);//undefined

循环遍历数组元素

var arr = ['化物语','23','true'];
//for语句-最常用
for (var i=0 ; i<arr.length;i++){
    console.log(arr[i])
}
//whil语句
/*
var i = 0 ;
while (i<aee.length){
    console.log(arr[i]);
    i++
}*/
//do...whi语句
/*
var i = 0;
do {
    console.log(arr[i]);
    i++
}while (i<arr.length);*/

var arr = ['化物语','23','true'];
/*//
* for(变量 in 数组名称){
*      语句}
*      */
for(var i in arr){
    console.log(arr[i])
}

二维数组

二维数组就是数组作为元素被包含在另一个数组中

var arr = [];
arr[0] = ['风','雅'];
arr[1] = ['童年','在人间'];
/*
console.log(arr)//[ [ '风', '雅',  ], [ '童年', '在人间' ] ]*/
//访问二维数组中的元素
//console.log(arr[0][0])//风

/*
var result = arr[0]
console.log(result[1])//雅
*/

//循环遍历二维数组
for(var i=0 ;i<arr.length;i++){
    console.log(arr[i]);
    for(var n=0;n<arr.length;n++){
        console.log(arr[i][n])
    }

}

李威振
16 声望5 粉丝

别离时方知此世间,花亦花来人亦人