棧堆結(jié)構(gòu): 堆棧都是一種數(shù)據(jù)項(xiàng)按序排列的數(shù)據(jù)結(jié)構(gòu),只能在一端(稱為棧頂(top))對(duì)數(shù)據(jù)項(xiàng)進(jìn)行插入和刪除。 棧:存放的是路徑;容量有限(在一開(kāi)始被定義之后就不會(huì)改變了);先進(jìn)后出(FILO)first In Last Out 堆:路徑映射的數(shù)據(jù);容量無(wú)限(因?yàn)橐恢笨赡鼙桓淖儯?;列?duì)優(yōu)先,先進(jìn)先出(FIFO)first In Last Out 如果我們把數(shù)組理解為棧堆結(jié)構(gòu)的話,那么 var arr = [1,2,3,4,5,6 ]; 那么arr就是 棧 他是一個(gè)路徑 : 找到數(shù)據(jù)的存儲(chǔ)層; 數(shù)據(jù) [1,2,3,4,5,6] 就是堆 ; 如果我們想要 改變堆中的數(shù)據(jù)的話,那么我們可以用push()方法向尾部添加一個(gè)數(shù)據(jù),或者用pop()方法刪除尾部數(shù)據(jù)。 數(shù)組: for-in(結(jié)合數(shù)組或?qū)ο螅?/span> 數(shù)組的概念,一組(一般情況下相同類型)的數(shù)據(jù); 下標(biāo)(索引)的概念; 創(chuàng)建數(shù)組 var arr= new Array(10); //創(chuàng)建一個(gè)包含 10 個(gè)元素的數(shù)組; var arr2= new Array('楊懷智',100,'教師','遼寧');//使用構(gòu)造函數(shù)創(chuàng)建; var arr3 = [1,2,3,4,5]; 靜態(tài)賦值 arr[0] = 5; arr[1] = 12; arr[2] = 4; 動(dòng)態(tài)賦值 for(var i=0; i<5; i++){ arr[i] = Math.random(); } 數(shù)組對(duì)象自帶的屬性:length代表數(shù)組有多少數(shù)據(jù)項(xiàng); 遍歷訪問(wèn)數(shù)組 普通for循環(huán)和 forEach循環(huán) arr.forEach(function(element,index,Arr){ }) push/pop、unshift/shift方法 arr.push('BJ'); //數(shù)組末尾添加一個(gè)元素 arr.unshift('TJ'); //數(shù)組開(kāi)頭添加一個(gè)元素 var str = arr.pop(); //移除末尾一個(gè)元素,并返回該元素 var str = arr.shift(); //移除開(kāi)頭一個(gè)元素,并返回該元素 隊(duì)列結(jié)構(gòu): 練習(xí):找出所有1-100之間7的倍數(shù)和包含7的數(shù)字 倒序reverse方法; arr.reverse()方法不會(huì)創(chuàng)建新的數(shù)組,而是將原有數(shù)組順序進(jìn)行了改變; var arr=[1,2,3] arr.reverse(); console.log(arr)//3,2,1 從小到大排序sort方法 (數(shù)字的排序) 冒泡排序算法:
選擇排序算法:
案例:去重
隨機(jī)點(diǎn)名程序:
|
|
來(lái)自: 好程序員IT > 《web前端培訓(xùn)教程》