摘要:數組描述表示可以儲存一個或多個數據值的有序集合數組中儲存的數據中可以稱為元素數組中可以儲存任何類型的數據語法字面量方式數組名稱元素,元素,構造函數方式數組名稱元素元素函數方式數組名稱元素元素長度表示數組的長度數組中儲存元素的個數當使用
數組 描述
表示可以儲存一個或多個數據值的有序集合
數組中儲存的數據中可以稱為元素
數組中可以儲存任何類型的數據
語法字面量方式 - var 數組名稱 = [ 元素, 元素 , ... ]
構造函數方式 - var 數組名稱 = new Array( 元素, 元素, ... )
函數方式 - var 數組名稱 = Array( 元素, 元素, ... )
length(長度)表示數組的長度(數組中儲存元素的個數)
當使用構造函數方式或函數方式來定義數組,數組中的元素只有一個,并且為number類型時,表示定義數組的長度
字面量方式不能定義數組的長度
定義數組 字面量方式/* 字面量方式 */ var arr1 = [];// 定義數組 - 數組中沒有任何元素,稱為空數組 console.log( arr1 );// 顯示 - [] var arr2 = [ 100, "啊哈哈", true ]; console.log( arr2 );// 顯示 - [ 100, "啊哈哈", true ] var arr9 = [10];// 不能定義數組的長度 console.log( arr9 );// 顯示 - [ 10 ]構建函數方式
/* 構造函數方式 */ var arr3 = new Array(); console.log( arr3 );// 顯示 - [] var arr4 = new Array( 100, "呀吼吼吼", true ); console.log( arr4 );// 顯示 - [ 100, "呀吼吼吼", true ] var arr5 = new Array( 10 );// 定義數組的長度 console.log( arr5 );// 顯示 - [ <10 empty items> ]函數方式
/* 函數方式 */ var arr6 = Array(); console.log( arr6 );// 顯示 - [] var arr7 = Array( 100, "我的蒼天吶", true ); console.log( arr7 );// 顯示 - [ 100, "我的蒼天吶", true ] var arr8 = Array( 10 );// 定義數組的長度 console.log( arr8 );// 顯示 - [ <10 empty items> ]數組的類型
可以分為索引數組和關聯數組
索引數組表示數組中儲存元素的位置用數字值來表示
數字值(也可以叫索引值)是從 0 開始
可以根據索引值來添加數組中的元素
JavaScript中定義數組的默認類型為索引數組
/* 索引數組 */ /* 定義一個空數組 */ var arr1 = []; console.log( arr1 );// 顯示 [] /* 為空數組中添加元素 */ arr1[0] = 100;// 根據索引值添加 arr1[1] = "啊哈哈"; arr1[2] = true; console.log( arr1 );// 顯示 [ 100, "啊哈哈", true ]稀疏數組
是索引數組的另一種表現形式
稀疏數組的數組長度和數組中的有效內容不一致
稀疏數組的位置允許不連續,沒有定義的位置默認為空(undefined)
/* 稀疏數組 */ var arr2 = []; /* 為空數組中添加元素 */ arr2[0] = 100;// 允許不按照索引值的順序進行添加 arr2[4] = 300; arr2[8] = 500; console.log( arr2 );// 顯示 [ 100, <3 empty items>, 300, <3 empty items>, 500 ] console.log( arr2.length );// 顯示 9(有效數據只有三個)關聯數組
表示數組中儲存元素的位置用字符串來表示
數組的長度(length)對關聯數組沒有效果
/* 關聯數組 */ var arr3 = []; /* 為空數組中添加元素 */ arr3["name"] = "啊哈哈";// 使用字符串方式添加元素 arr3["nian"] = 100; arr3["gong"] = "深山"; console.log( arr3 );// 顯示 [ name: "啊哈哈", nian: 100, gong: "深山" ] console.log( arr3.length );// 顯示 0(length無效)數組的調用
表示提取數組中數據值進行顯示
如果訪問的元素位置未定義過 或 位置為空,提取的數據為 undefined ,語法不報錯
索引數組通過索引值來提取對應的元素
/* 索引數組 */ var arr1 = [ "啊哈哈", 100, true ]; /* 調用具體位置的元素 */ console.log( arr1[0] );// 顯示對應數據內容 啊哈哈 /* 調用未定義位置的元素 */ console.log( arr1[4] );// 顯示 undefined稀疏數組
通過索引值來提取對應的元素
/* 稀疏數組 */ var arr2 = []; arr2[0] = 100; arr2[4] = 300; arr2[8] = 500; /* 調用具體位置的元素 */ console.log( arr2[0] );// 顯示對應數據內容 100 /* 調用未定義位置的元素 */ console.log( arr2[5] );// 顯示 undefined關聯數組
通過字符串來提取對應的元素
/* 關聯數組 */ var arr3 = []; arr3["name"] = "啊哈哈"; arr3["nian"] = 100; arr3["gong"] = "深山"; /* 調用具體位置的元素 */ console.log( arr3["name"] );// 顯示對應數據內容 啊哈哈 /* 調用未定義位置的元素 */ console.log( arr3["nm"] );// 顯示 undefined數組的修改
表示對數組中的數據值進行修改
通過數組的索引值找到對應元素的位置,在通過對指定數據進行重新賦值來完成數組修改
/* 索引數組 */ var arr1 = []; arr1[0] = 100; arr1[1] = 200; console.log( arr1 );// 顯示 [ 100, 200 ] /* 對指定元素數據進行修改 */ arr1[0] = 400; console.log( arr1 );// 顯示 [ 400, 200 ] /* 關聯數組 */ var arr2 = []; arr2["name"] = "啊哈哈"; arr2["nian"] = 100; arr2["gong"] = "深山"; console.log( arr2 );// 顯示 [ name: "啊哈哈", nian: 100, gong: "深山" ] /* 對指定元素數據進行修改 */ arr2["name"] = "呀吼吼吼"; console.log( arr2 );// 顯示 [ name: "呀吼吼吼", nian: 100, gong: "深山" ]數組的刪除
表示對數組中的數據值進行刪除
使用delete運算符來刪除數據值
但是只刪除數據值,不刪除數據值所占的位置空間
數組進行刪除后會變成稀疏數組
var arr = [ 100, "哈哈哈", true ]; /* 使用delete運算符來對指定數據內容進行刪除 */ delete arr [ 1 ]; /* 刪除后會只刪除數據內容,但不會刪除數據所占的位置 */ console.log( arr );//顯示結果:[ 100, <1 empty item>, true ] console.log( arr.length );//顯示數組中的數據個數 3數組的復制
表示一個數組對另一個數組進行復制
復制分為深復制和淺復制
深復制是復制數組中的數據值
如果對復制的數據內容進行修改,不會對復制的數組中的數據值進行修改
/* 深復制:是指對數組中的數據值進行復制 */ var arr1 = [ 100, "呀吼吼", true ]; var arr2 = []; /* 使用循環語句對數組遍歷,獲得數組中的數據內容 */ for ( var a = 0; a < arr1.length; a++ ) { arr2 [ a ] = arr1 [ a ];//將獲得的數據內容復制到另一個數組中 } /* 顯示復制效果 */ console.log( arr2 );// [ 100, "呀吼吼", true ] /* 如果對復制的數據進行修改原本的數據不會被修改 */ arr2[ 1 ] = "哇哈哈";// 修改數據 console.log( arr2 );// 修改后效果:[ 100, "娃哈哈", true ] console.log( arr1 );// 修改后效果:[ 100, "呀吼吼", true ]淺復制
是復制在數組中儲存的內容地址
如果對復制的數據內容進行修改,會同時修改被復制的數組中的數據值
/* 淺復制:是指對數組中存放的內容地址進行復制 */ var arr3 = [ 100, "呀吼吼", true ]; var arr4 = []; arr4 = arr3; console.log( arr3 );//顯示效果:[ 100, "呀吼吼", true ] /* 但是要注意如果對數據進行修改會同時修改 */ arr4[ 1 ] = "哇哈哈";//修改數據 console.log( arr4 );//修改后效果:[ 100, "娃哈哈", true ] console.log( arr3 );//修改后效果:[ 100, "娃哈哈", true ]數組的遍歷
通過循環語句來獲取數組中的全部數據內容
/* for語句遍歷索引數組 */ var arr1 = [ "啊哈哈", 100, true, undefined, null ]; for ( var i = 0; i < arr1.length; i++ ) { console.log( arr1[i] ); }for...in語句 語法
for ( var 變量 in 數組 ) { 語句塊 }
變量 - 表示得到的數組中的數據內容
/* for...in語句遍歷索引數組 */ for ( var s in arr1 ) { console.log( arr1[s] ); }for語句與for...in語句的對比
for語句
循環的開始和結束,可以由開發人員決定
由于稀疏數組的數組長度和數組的有效內容不一致,遍歷出的數據值,不能過濾掉無效數據值
由于關聯數組的數組長度無效,所以無法使用for語句進行循環遍歷
for...in語句
循環只能從開始到結束
在遍歷稀疏數組時可以過濾掉無效數據值,直接得到有效數據值
for...in語句可以對關聯數組進行遍歷
/* 稀疏數組 */ var arr2 = []; arr2[0] = 100; arr2[4] = 300; arr2[8] = 500; /* for語句遍歷稀疏數組 */ for ( var a = 0; a < arr2.length; a++ ) { /* 得到全部數據值,包括無效數據值 */ console.log( arr2[a]); } /* for...in語句遍歷稀疏數組 */ for ( var b in arr2 ) { /* 可以得到數組中的有效數據值 */ console.log( arr2[b] ); } /* 關聯數組 */ var arr3 = []; arr3["name"] = "啊哈哈"; arr3["nian"] = 100; arr3["gong"] = "深山"; /* for語句遍歷關聯數組 */ for ( var x = 0; x < arr3.length; x++ ) { /* 關聯數組沒有數組長度,所以無法遍歷 */ console.log( arr3[x] ); } /* for...in語句遍歷關聯數組 */ for ( var y in arr3 ) { /* 可以遍歷到數組中的數據值 */ console.log( arr3[y] ); }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/96781.html
摘要:數組一數組是什么是值得有序集合,每個元素都在數組里有唯一的位置,用數字表示,叫做索引數據用字符串表示,叫關聯數組。 JS(JavaScript) 數組; 一.數組是什么; 是值得有序集合,每個元素都在數組里有唯一的位置,用數字表示,叫做索引數據;用字符串表示,叫關聯數組。數組無類型;數組元素可以是類型,字符串,數字值,布爾值等數組動態的;向插入新元素,從數組中刪除指定元素 二.一維數組...
摘要:對象數組初始化表達式,闖關記之上文檔對象模型是針對和文檔的一個。闖關記之數組數組是值的有序集合。數組是動態的,根闖關記之語法的語法大量借鑒了及其他類語言如和的語法。 《JavaScript 闖關記》之 DOM(下) Element 類型 除了 Document 類型之外,Element 類型就要算是 Web 編程中最常用的類型了。Element 類型用于表現 XML 或 HTML 元素...
摘要:在定義函數的作用域外調用,得到的返回仍然是函數創建時所在的作用域的局部變量。這是因為所在的匿名函數的閉包中存放的是第一行的,而不是在循環中獲得的的當前值。 原文: http://pij.robinqu.me/JavaScript_Core/JavaScript_Basics/Function.html 源代碼: https://github.com/RobinQu/Pr...
摘要:數組創建數組數組字面量使用構造函數數組本質上是所以要判斷是不是數組,需要通過判斷。數組長度使用屬性獲取元素的個數。例如函數的對象就是這樣 原文: http://pij.robinqu.me/JavaScript_Core/JavaScript_Basics/Array.html 源代碼: https://github.com/RobinQu/Programing-In-...
摘要:屬性名可以是包含空字符串在內的任意字符串,但對象中不能存在兩個同名的屬性??蛻舳酥斜硎揪W頁結構的對象均是宿主對象。這里的函數稱做構造函數,構造函數用以初始化一個新創建的對象。通過關鍵字和構造函數調用創建的對象的原型就是構造函數的屬性的值。 對象是 JavaScript 的數據類型。它將很多值(原始值或者其他對象)聚合在一起,可通過名字訪問這些值,因此我們可以把它看成是從字符串到值的映射...
閱讀 2067·2021-10-12 10:12
閱讀 788·2021-09-24 09:47
閱讀 1188·2021-08-19 11:12
閱讀 3462·2019-08-29 13:06
閱讀 681·2019-08-26 11:43
閱讀 2563·2019-08-23 17:20
閱讀 1146·2019-08-23 16:52
閱讀 2594·2019-08-23 14:27