3

数组

定义数组

1.var 数组名称 = [元素1,元素2,...];

var arr=[];//定义空数组
var arr1=[100,'前端',true,undefined];//定义数组同时添加不同类型的元素

2.构造函数方式

var 数组名称 = new Array(元素1,元素2,...);
var 数组名称 = new Array(length);
length:number类型,表示数组的长度(存在元素的个数)

var arr=new Array();//用new创造出一个空数组的构造函数
var arr1=new Array(100,'前端',true,undefined);//用new创造一个空数组的构造函数并添加元素

3.函数方式定义

var 数组名称 = Array(元素1,元素2,...);
var 数组名称 = Array(length);
length:number类型,表示数组的长度(存在元素的个数)

var arr=Array();//定义一个空数组
var arr1=Array(100,'前端',true);//定义一个空数组并添加元素
var arr2=Array(20);//定义一个数组并给它开20个位置

索引数组

表示数组中元素的位置使用数字值来表示的
数字值:表示元素的位置,也就是下标
数组的长度与元素的个数是一致的

var arr=[];//定义一个空数组
arr[0] = '大前端';
arr[1] = true;

关联数组

表示数组中元素的位置使用字符串来表示
注意关联数组的数组长度与元素个数不一致,length在关联数组中失效

var arr=[];//定义一个空数组
arr['name'] = '孙悟空';
arr['age'] = 500;
arr['job'] = '花果山美猴王';

稀疏数组

数组的长度与元素的个数不一致的,索引数组的位置允许不连续的,没有定义元素的位置默认为空

var arr=[];
arr[0] = '美猴王';
arr[3] = 500;
arr[5] = '花果山';

访问数组的元素

数组名称[索引值]

var arr=['大前端',100,null];//定义数组
console.log(arr[0]);//输出arr中0位置的内容
console.log(arr[5]);//访问arr中位置5的内容,虽然不存在,但是也不报错,返回undefined

数组的复制

var num=100;
var res=num;
console.log(num);//输出结果:100
console.log(res);//输出结果:100

num=200;
console.log(res);//输出结果:100
//复制变量里的值,不管原变量怎么改动值,都不影响复制它值的另一个变量的值

var arr=['大前端',100,true];
var arr1=arr;
console.log(arr);//输出结果:['大前端',100,true]
console.log(arr1);//输出结果:['大前端',100,true]

arr=[100];
console.log(arr);//输出结果:[100]
console.log(arr1);//输出结果:['大前端',100,true]

arr[0]=100;
console.log(arr);//输出结果:[100,100,true]
console.log(arr1);//输出结果:[100,100,true]
/*复制一个数组,如果被复制的原数组,只会把原数组中的存储地址位置赋值给另一个数组,
另一个数组会跟它一起通过地址位置连接到同一个存储位置,如果原数组修改自己里面的值
会影响另一个数组,如果原数组直接重新赋值一个新数组,则不影响另一个数组*/

数组的修改

//索引数组的修改
var arr=['大前端',100];
arr[0]='前端';

//关联数组的修改
var arr1=[];
arr1['name']='孙悟空';
arr1['age']=500;
arr1['name']='唐僧';

数组的删除

//索引数组的删除
var arr1=['大前端',true];
delete arr1[0];

//关联数组的删除
var arr2=[];
arr2['kecheng']='大前端';
arr2['name']='张三';
delete arr2['kecheng'];

循环遍历数组

var arr = ['前端', 200, true, undefined];
// while语句
var i = 0;
while (i < arr.length){
    console.log(arr[i]);
    i++;
}

// do...while语句
var i = 0;
do {
    console.log(arr[i]);
    i++;
} while (i < arr.length);

// for语句
for (var i=0; i<arr.length; i++) {
    console.log(arr[i]);
}

for...in语句

for语句:循环的开始和结束,都是由程序员决定的
for..in语句:循环只能从开始到结束

var arr = ['前端', 100, true, undefined];
/*
    for (var 变量 in 数组) {
        代码段
    }
    * 变量:得到的是数组的索引值
 */
for (var i in arr) {
    console.log(arr[i]);
}

// 关联数组的length属性为 0
var arr1 = [];
arr1['name'] = '张三';
arr1['age'] = 28;
arr1['job'] = '程序员';

// for..in语句可以循环遍历关联数组, for语句不行
for (var i in arr1) {
    console.log(arr1[i]);
}

// 稀疏数组 - 数组的长度与元素的个数不一致
var arr2 = [];
arr1['name'] = '李四';
arr1['age'] = 89;
arr1['job'] = '运动员';

// for..in语句循环遍历稀疏数组(直接得到有效元素值), for语句不行
for (var i in arr2) {
    console.log(arr2[i]);
}

二维数组

var arr = [];// 定义一个空数组
arr[0] = [苹果X,8999,2017];
arr[1] = [小米,999,2016];
arr[2] = [华为,4563,2017];

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]);
    }
}

庄国琳
42 声望7 粉丝

如果不努力,那以后你还是一条咸鱼