我們程式設計過程中需要乙個可以儲存大量資料的結構 -> 陣列。
陣列的概念:儲存大量資料。可以使用乙個變數名,儲存大量的資料。
<1>通過new運算子建立陣列
引數的部分:傳入你想儲存在陣列中的元素(js弱引用,陣列中可以儲存任意的資料型別)
【注】元素:陣列中儲存的每乙個值,叫做陣列的元素。
<2>省略new運算子建立陣列
以上兩種建立陣列的方法都不常用。
<3>直接通過陣列常量賦值。js中陣列就是通過 表示。
var arr = new array(100, true, "hello");
alert(arr);
var arr = array(100, true, "hello");
alert(arr);
var arr = [10, true, "hello"];
alert(arr);
重點:使用 new array array 建立陣列的時候
當引數是數字,並且只有這乙個引數的時候,生成乙個對應長度的空陣列。
var arr = new array(10);
/*var arr = array(10);
alert(arr);*/
var arr = [10, 20, 30];
alert(typeof arr); //object
訪問陣列的屬性:
arr.length 輸出陣列中元素的個數
陣列的元素個數 arr.length
【注】length屬性,不是唯讀的,可以設定。
訪問陣列中的元素:
通過元素的下標訪問,【注】元素下標從0開始的。
【注】迴圈和陣列是絕配。
math.random() 隨機0~1之間的任意數 [0, 1)
for迴圈
for...in 快速遍歷/快速列舉法 直接從頭到尾直接遍歷每乙個元素。
for(var i in arr)
//【注】在快速遍歷的時候,不要對原陣列中的元素個數進行修改。
系統提供了大量的陣列的函式
棧結構 通過陣列的方法模擬乙個棧結構。
棧結構特點:先進後出
push pop
通過陣列的方法:元素只能從同一頭出,同一頭進。
push
格式:陣列.push(引數1, 引數2...);
功能:給陣列的末尾新增元素。
返回值:新增完元素以後,陣列的長度
pop格式:陣列.pop()
功能:從陣列的末尾取乙個元素下來
返回值:取下的元素
佇列結構
特點:先進先出
通過陣列的方法:從尾部插入元素,從頭部取下元素。
push shift
shift()
格式:陣列.shift()
功能:從陣列頭部取元素下來。
返回值:從陣列頭部取下的元素。
unshift 從陣列的頭部插入元素
格式:陣列.unshift(元素...);
功能:從陣列頭部插入元素
返回值:插完元素以後陣列的長度。
concat()
格式:陣列.concat(陣列1, 陣列2, 變數/常量...);
功能:將這些陣列中的元素,全部合併成乙個新陣列。不會修改原陣列。
返回值:返回值就是生成的新陣列。
concat() 沒有傳入引數,直接生成乙個一模一樣的新陣列,返回。
slice()
格式:陣列.slice(start, end);
功能:獲取[start, end)下標範圍內的元素,生成新陣列,不會修改原陣列。
返回值:生成的新陣列。
splice() 可以實現增、刪、改
格式:陣列.splice(start, length, 元素1, 元素2 .....);
引數:第乙個引數,開始擷取的下標
第二個引數,擷取的元素長度
第三個引數往後,在開始位置插入的元素
join() 陣列--> 字串
格式:陣列.join(拼接符);
功能:將陣列中每乙個元素,通過拼接符,拼接成乙個字串
返回值:字串
reverse() 逆序
功能:對原陣列逆序
格式:陣列.reverse()
sort()
【注】預設是按照字串公升序排序
引數:是乙個函式
function(value1, value2) 降序排列
function(value1, value2) 公升序
var arr = [1, 20, 15, 10, 5];
arr.sort();
alert(arr); //1,10,15,20,5 它會拿每乙個數的第乙個數字進行比較,一旦比較出大小,那麼之後的數字不會再比較了
氣泡排序:
規則:前後兩兩進行比較,如果符合條件,交換兩個數的位置。
特點:每一輪比較,都能找出乙個較大的數,放在正確的位置。
第一輪:五次
9, 8, 7, 6, 5, 4
8, 9, 7, 6, 5, 4
8, 7, 9, 6, 5, 4
8, 7, 6, 9, 5, 4
8, 7, 6, 5, 9, 4
8, 7, 6, 5, 4, 9
第二輪:四次
8, 7, 6, 5, 4
7, 8, 6, 5, 4
7, 6, 8, 5, 4
7, 6, 5, 8, 4
7, 6, 5, 4, 8
第三輪:三次
7, 6, 5, 4
6, 7, 5, 4
6, 5, 7, 4
6, 5, 4, 7
第四輪:二次
6, 5, 4
5, 6, 4
5, 4, 6
第五輪:一次
5, 4
4, 5
比較輪數 = 陣列長度 - 1
陣列長度 = 比較的輪次 + 每輪次數
每輪次數 = 陣列長度 - 比較的輪次
var arr = [9, 8, 7, 6, 5, 4];
//比較輪數:
for(var i = 0; i < arr.length - 1; i++)
}}
選擇排序 --- 打擂台法
規律:通過比較首先選出最小的數放在第乙個位置上,然後在其餘的數中選出次小數放在第二個位置上,依此類推,直到所有的數成為有序序列。'';
結論:每一輪都能找到乙個較小的數,放在正確的位置。
第一輪:
9, 8, 7, 6, 5, 4
8, 9, 7, 6, 5, 4
7, 9, 8, 6, 5, 4
6, 9, 8, 7, 5, 4
5, 9, 8, 7, 6, 4
4, 9, 8, 7, 6, 5
第二輪:
9, 8, 7, 6, 5
8, 9, 7, 6, 5
7, 9, 8, 6, 5
6, 9, 8, 7, 5
5, 9, 8, 7, 6
第三輪:
9, 8, 7, 6
8, 9, 7, 6
7, 9, 8, 6
6, 9, 8, 7
第四輪:
9, 8, 7
8, 9, 7
7, 9, 8
第五輪:
9, 8
8, 9
比較輪數 = 陣列長度 - 1
比較的次數 = 陣列長度 - 當前輪數
var arr = [9, 8, 7, 6, 5, 4];
for(var i = 0; i < arr.length - 1; i++)
}}
js中 關於bom的知識
1 screentop 瀏覽器左上角到物理螢幕左上角的垂直距離 2 screenleft 瀏覽器左上角到物理螢幕左上角的水平距離 3 以上兩種 除了火狐瀏覽器不相容外,其他瀏覽器都相容,火狐瀏覽器使用screenx和screeny,其功能和上面兩種一樣 處理相容性問題 browerleft wind...
關於js中遍歷總結
1.for迴圈 1 var2 arr 3for var i 0 i arr.length i js最常用的迴圈必然是for迴圈,最基礎的用法,用於陣列遍歷,但是 書寫過多。1 var2 arr 3 array.prototype.customfunc function 4for var item i...
關於JS中的陣列 的方法
push 向陣列中放資料。splice a,b 清空陣列 a 0 表示從0下標開始,b 表示到b位。不包括b位 pop 返回陣列中的最後乙個元素 eg var arr new array 3 或定義 var arr arr 0 george arr 1 john arr 2 thomas docum...