聊聊javascript中的数组

数组

定义数组

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]);
    }
}
    原文作者:庄国琳
    原文地址: https://segmentfault.com/a/1190000015953473
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞