數組
數組:一組變量的集合,起一個統一的名字。
如何使用數組:創建 取值 賦值
創建:共四種
創建空數組:var 數組名=[]; var 數組名=new Array();
何時使用:暫時不知道數據內容,先創建空數組,再追加
創建同時初始化數組內容:var 數組名=[值1,值2,...]
何時使用:創建時,就已經知道數組的內容
創建指定元素個數的數組: var 數組名=new Array(n);創建一個新數組對象,同時初始化n個空元素
創建同時初始化數組內容:var 數組名=new Array(值1,值2,...)
var week=["日","一","二","三","四","五","六"]; 0 1 2 3 4 5 6 console.log("今天星期"+week[5]);
數組中每個元素<==>一個變量: 用法和變量完全相同!
2. 取值:獲取數組中指定位置的元素內容 下標:數組中標識每個元素位置的序號 默認,自動從0開始,每個+1,到元素個數-1結束 如何取值:var 元素的值=數組名[下標]; 3. 賦值:將新值放入指定位置的元素中保存 如何賦值:數組名[下標]=新值; 數組是引用類型的對象: 數組名作為變量賦值或參數傳遞時,都是將地址值復制給對方 后果,對方修改數組的內容,訪問原數字名也會受影響 null: 主動釋放一個對象的引用。null本身是原始類型的值 垃圾回收器:伴隨主程序,同時運行的后臺程序 記錄每個對象當前被引用的次數 被引用的次數==0,垃圾回收器自動釋放對象內存空間 強烈建議:在使用完,較大對象后,主動賦值為null,總是好習慣
獲取數組的元素個數:arr.length屬性,不加圓括號
固定套路:
獲得數組最后一個元素:arr[arr.length-1];
向數組末尾追加一個新元素:arr[arr.length]=新值 js中的數組 vs 其他語言中的數組:3個區別: 1. 不限制元素的數據類型 2. 不限制數組長度 3. js的數組越界不會出錯! 賦值時:自動創建制定下標的元素,保存新值 length屬性,會隨最大下標而變化 取值時:視圖從沒有的下標位置取值,返回undefined
遍歷數組:從第0個元素開始,依次獲取每個元素,
對每個元素執行相同的操作 下標:遍歷數組時,天生的循環變量!
var emps=[]; var input=""; while((input=prompt("輸入員工姓名"))!="exit"){ emps[emps.length]=input; } console.log(emps);
var arr=[2,5,4,6,7,9]; function getMax(arr){ var max=arr[0]; for(var i=1;imax&&(max=arr[i]); } return max; } console.log(getMax(arr));//獲取數組中最大值
//獲取元素下標的位置 function indexOf(arr,elem){ for(var i=0;i//冒泡排序
function myArr(arr){ for(var i=0;i關聯數組arr[j+1]){ var temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } } var arr=[12,4,9,21,43,3]; myArr(arr); console.log(arr); 數組的API:
關聯數組(hash數組):可自定義元素下標名稱的數組(關聯數組是字符串)
索引數組:自動從0開始分配連續不重復的序號下標
如何創建關聯數組:2種方式:1. 先創建普通空數組,再追加自定義下標的元素 var ym=[]; ym["sname"]="MM"; ym["A"]=81; ym["B"]=53; ym["C"]=89; *關聯數組的length屬性失效* *關聯數組中的key不能重復* 關聯(hash)數組優勢:查找極快!和元素個數無關! 2. 創建數組同時,初始化元素內容: var mm={"sname":"MM","A":81,"B":53,"C":89}; key value 關聯數組中保存的是多個key/value對兒 鍵 值//數組去重
var arr=[2,2,4,5,3,6,5,3]; function myArr(arr){ var arr1=[]; for(var i=0;i如何遍歷關聯數組:
for(var key in arr){ //依次取出arr中每個key,存在變量key中 arr[key]-->獲得當前正在遍歷的key中存儲的值 }## 數組API ##
數組轉換成字符串:有兩種方法
var str=arr.toString(); 默認只能以逗號分隔每個元素。
var str=arr.join("連接符");自定義元素間的連接符
固定套路:將字符數組,無縫拼接為單詞:
比如: var chars=["H","e","l","l","o"];將單詞數組,拼接為句子:
將數組轉化為頁面上的列表/選擇元素:
優化:頻繁字符串拼接,推薦使用數組的join方法作為替代
步驟:先將要拼接的子字符串,放入一個數組中,臨時保存
遍歷結束后,一次性join成一個完整字符串
var words=["we","two","who","and","who"]; var str=words.join(" "); console.log(str);//we two who and who連接數組和獲取子數組:不修改原數組對象,返回新數組對象
concat: var newArr=arr.concat(值1,值2,[值3,值4].....) slice: var subArr=arr.slice(starti[,endi+1]); starti: 開始的位置下標 endi: 獲取到的位置下標 ***含頭不含尾*** slice支持倒數下標 省略endi,從starti一直取到結尾var arr=[1,4,3]; var arr1=[22,44]; var newArr=arr.concat(13,134,arr1); console.log(arr);splice:刪除,插入,替換任意位置的任意個元素
***直接修改原數組 刪除:splice(starti,n);//startivar arr=[1,2,4,4,5]; var id=arr.splice(2,2); console.log(arr); console.log(id);
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/81604.html
摘要:使用新的易用的類定義,歸根結底也是要創建構造函數和修改原型。首先,它把構造函數當成單獨的函數且包含類屬性集。該節點還儲存了指向父類的指針引用,該父類也并儲存了構造函數,屬性集和及父類引用,依次類推。 原文請查閱這里,略有刪減,本文采用知識共享署名 4.0 國際許可協議共享,BY Troland。 本系列持續更新中,Github 地址請查閱這里。 這是 JavaScript 工作原理的第...
摘要:使用新的易用的類定義,歸根結底也是要創建構造函數和修改原型。首先,它把構造函數當成單獨的函數且包含類屬性集。該節點還儲存了指向父類的指針引用,該父類也并儲存了構造函數,屬性集和及父類引用,依次類推。 原文請查閱這里,略有刪減,本文采用知識共享署名 4.0 國際許可協議共享,BY Troland。 本系列持續更新中,Github 地址請查閱這里。 這是 JavaScript 工作原理的第...
摘要:這是因為我們訪問了數組中不存在的數組元素它超過了最后一個實際分配到內存的數組元素字節,并且有可能會讀取或者覆寫的位。包含個元素的新數組由和數組元素所組成中的內存使用中使用分配的內存主要指的是內存讀寫。 原文請查閱這里,本文有進行刪減,文后增了些經驗總結。 本系列持續更新中,Github 地址請查閱這里。 這是 JavaScript 工作原理的第三章。 我們將會討論日常使用中另一個被開發...
閱讀 1206·2021-11-24 09:39
閱讀 2129·2021-11-22 13:54
閱讀 2111·2021-09-08 10:45
閱讀 1443·2021-08-09 13:43
閱讀 2985·2019-08-30 15:52
閱讀 3083·2019-08-29 15:38
閱讀 2848·2019-08-26 13:44
閱讀 3055·2019-08-26 13:30