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