JavaScript學習第四天筆記(數組)

數組

概述

數組是什麼

數組是值的有序集合。數組中的每一個值叫作一個元素,而每一個元素在數組中都右一個惟一的位置。這個位置用數字表示,叫作索引數組;用字符串表示,叫作關聯數組。
JavaScript數組是無類型的;數組的元素能夠是任何的類型(字符串,數字值,布爾值等),而且每一個數組的不一樣元素多是不一樣的類型。
JavaScript數組是動態的:根據須要,能夠動態地向數組插入新的元素,或者從數組中刪除指定的元素程序員

一維數組

定義數組

1.使用字面量/直接量方式定義

語法:數組

var 數組名稱 = [元素1,元素2,...]

示例代碼:函數

var arr1 = [];/*定義一個空數組*/
var arr2 = [100,'星矢',true];
console .log(arr1);/*輸出結果爲:[]*/
console .log(arr2);/*輸出結果:[100,'星矢',true]*/

2.構造函數方式

語法: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> ]*/

3.函數方式定義

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

for...in語句

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