聊聊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類型,表示數組的長度(存在元素的個數)code

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'] = '花果山美猴王';

稀疏數組

數組的長度與元素的個數不一致的,索引數組的位置容許不連續的,沒有定義元素的位置默認爲空console

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]);
    }
}
相關文章
相關標籤/搜索