目錄
一.前言
二.數組
1.認識
2.數組的聲明?
1.let arr = [1,2,3,4]
2.結合構造函數,創建數組
注意:
?3.數組長度的設置和獲取
注意?
4.刪除數組元素
5.清空數組
三.獲取數組元素
獲取數組元素的幾種方法
1.使用方括號?[]?訪問元素:
2.使用循環遍歷數組:
3.使用數組迭代方法:
四.遍歷數組(詳解)?
遍歷數組常用的方法
1.for循環
2.for-in循環
3.forEach函數
?案例
1.猜拳比大小(具體游戲名不清楚)
整體思路
代碼講解
2.隨機生成20個100-200的整數,輸出最大的那個整數及其位置?
整體思路
代碼講解?
完整代碼?
一.前言
? ? ? ? 數組是一種數據結構,用于存儲和組織多個相同類型的元素。它是編程語言中常見的基本數據結構之一。數組提供了一個連續的存儲空間,其中每個元素都可以通過索引訪問,索引通常從0開始。數組是一種常見又強大的數據結構,可以用于多種編程場景,例如存儲一組數據、處理集合、排序和過濾等。了解數組的基本概念和使用方法對于進行編程任務非常重要。不同的編程語言可能有略微不同的語法和方法來操作數組。
二.數組
1.認識
數組
? ? 1.數組屬于對象類型(復雜數據類型)
? ? 2.string , boolean ,number , undefind 屬于基礎類型(簡單數據類型)
? ?
? ? 數組中可以存放任意數據類型的數據
2.數組的聲明?
1.let arr = [1,2,3,4]
let arr1 = [1,2,'封神榜','玉玲瓏']console.log(arr1)
2.結合構造函數,創建數組
let arr4 = new Array(4);
//使用Array()構造函數創建數組let arr2 = new Array();console.log(arr2);
注意:
? ? ? ?使用 構造函數聲明數組的時候,如果只有一個number的參數,則表示數組的長度,而數組內容為空,如果參數是兩個及其以上的數字,則表示數組元素。
//如果Array的參數是一個數字類型數據,表示數組長度,該數組中的數據都是空let arr4 = new Array(4);console.log(arr4);
? ? ? 如果是兩個及其以上的數字,則表示數組中的元素
//如果是兩個及其以上的數字,則表示數組中的元素let arr5 = new Array(4,5);console.log(arr5);
?3.數組長度的設置和獲取
? ? ? ? ?使用 數組的length屬性,既可以設置數組長度,也可以獲取數組長度
let arr6 = [false,'灰太狼',23,'劉備']console.log(arr6.length);//獲取數組的長度,也就是數組中有幾個元素,稱為數組長度
注意?
形如 let arr2 = [,,,]
在計算該數組長度的時候最后一個逗號后面如果為空,則不計算入數組長度
/*形如 let arr2 = [,,,] 在計算該數組長度的時候最后一個逗號后面如果為空,則不計算入數組長度*/let arr1 = [,,,3,4]let arr2 = [,,,]console.log(arr1.length , arr2.length);let arr3 = ['武松','武大郎','潘金蓮','宋江']
4.刪除數組元素
//刪除數組元素arr6.length = 2console.log(arr6);
5.清空數組
//清空數組arr6.length = 0console.log(arr6);
三.獲取數組元素
? ? ?數組當中的每一個元素,都對應一個數組下標(索引),下標從0開始計算,獲取數組中的數據可以通過arr[下標]的方式獲取
console.log(arr3[2]);//隨機獲取下標,范圍是[0,3]let num = Math.floor(Math.random()*4)console.log(arr3[num]);
獲取數組元素的幾種方法
1.使用方括號?
[]
?訪問元素:? ? ? ? 使用方括號和索引來直接獲取數組中的元素。例如,
array[0]
?表示獲取數組?array
?中的第一個元素,array[1]
?表示獲取第二個元素,依此類推。let array = [1, 2, 3, 4, 5]; let firstElement = array[0]; // 獲取第一個元素,值為 1 let thirdElement = array[2]; // 獲取第三個元素,值為 3
2.使用循環遍歷數組:
? ? ? ? 可以使用循環(如?
for
、while
)來迭代數組,從而逐個獲取數組中的元素。通過循環的方式,可以獲取數組的全部或部分元素。在 JavaScript 中let array = [1, 2, 3, 4, 5]; for (let i = 0; i < array.length; i++) {console.log(array[i]); // 逐個輸出數組元素 }
3.使用數組迭代方法:
許多編程語言提供了內置的數組迭代方法(如?
forEach()
、map()
、filter()
?等),這些方法可以方便地遍歷數組并對每個元素執行相應的操作。let array = [1, 2, 3, 4, 5]; array.forEach(function(element) {console.log(element); // 逐個輸出數組元素 });
? ? ? 無論使用哪種方法,都可以根據需要獲取數組中的元素。請記住,索引應該大于等于0并且小于數組的長度,否則會導致錯誤。確保在使用索引訪問元素時遵循適當的邊界條件和索引范圍,以避免出現數組越界的問題。
四.遍歷數組(詳解)?
遍歷數組常用的方法
遍歷數組
1.for循環
//for循環for (let i= 0; i < arr4.length; i++) {console.log(arr4[i]);document.write(arr4[i]+'<br>')}document.write('<hr>')
2.for-in循環
//for-in 循環,還可以循環對象/*for (const key in arr4) {key 是循環的下標,key是變量可以隨意命名arr4 是要循環的對象}*/for (const aa in arr4) {document.write(arr4[aa]+'<br>')}document.write('<hr>')
3.forEach函數
/*Es6 中推薦使用 數組的方法,forEach()它里面傳入的是一個函數,該函數具有一個形參 item , item 就是當前循環的數組元素*/arr4.forEach(function(item){document.write(item+'<br>')})
?案例
1.猜拳比大小(具體游戲名不清楚)
整體思路
? ? ? HTML部分定義了游戲的界面元素,包括標題、輸入框和下拉選擇框等。
? ? ? JavaScript部分實現了游戲的邏輯。代碼中定義了兩個數組
arr1
和arr2
分別表示玩家A的手指數和所說的數的可能取值。? ? ? 在點擊按鈕時,代碼生成兩個隨機數
sj1
和sj2
,并根據這兩個隨機數從arr1
和arr2
中選擇對應的數值。然后根據玩家B所選擇的手指數和所說的數,以及玩家A的手指數和所說的數,進行判斷比較,判斷勝負或平局,并通過alert
函數彈出結果。總體思路就是根據隨機選擇的手指數和所說的數,判斷玩家A和玩家B的選擇,并判斷游戲的勝負關系。
代碼講解
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>猜數字</title>
</head>
<body><h3>A</h3><input type="text" value="" id="aa" placeholder="A的手指數"><input type="text" value="" id="bb" placeholder="A說的數"><h3>B</h3>B的手指數:<select name="" id="cc"><option value="0">0</option><option value="5">5</option><option value="10">10</option></select>B說的數:<select name="" id="dd"><option value="0">0</option><option value="5">5</option><option value="10">10</option><option value="5">15</option><option value="20">20</option></select> <br><br><button id="btn">Come On!</button>
</body>
</html>
? ? ? ? 這部分是HTML代碼,它定義了一個簡單的頁面結構。包括一個標題(<title>
),兩個文本輸入框(<input>
),兩個下拉列表(<select>
),一個按鈕(<button>
)。用戶可通過輸入文本框和選擇下拉列表來參與猜數字游戲。
<script>//A的手指數let arr1 = [0,5,10]//A說的數let arr2 = [0,5,10,15,20]let aa = document.getElementById('aa')let bb = document.getElementById('bb')let cc = document.getElementById('cc')let dd = document.getElementById('dd')let btn = document.getElementById('btn')btn.onclick = function(){let sj1 = Math.floor(Math.random()*3)let sj2 = Math.floor(Math.random()*(5-sj1)+sj1)let c = cc.value-0let d = dd.value-0aa.value = arr1[sj1]bb.value = arr2[sj2] ;let a = aa.value-0let b = bb.value -0if (a+c==d&&a+c!=b) {alert('B贏')}else if(a+c==b&&a+c!=d){alert('A贏')}else{alert('平')}}
</script>
這部分是JavaScript代碼,它實現了猜數字游戲的邏輯。讓我們逐行解釋它:
let arr1 = [0,5,10]
:定義了數組arr1
,其中包含了A可能選擇的手指數。let arr2 = [0,5,10,15,20]
:定義了數組arr2
,其中包含了A可能說的數。let aa = document.getElementById('aa')
:獲取ID為aa
的元素,即A的手指數輸入框。let bb = document.getElementById('bb')
:獲取ID為bb
的元素,即A說的數輸入框。let cc = document.getElementById('cc')
:獲取ID為cc
的元素,即B的手指數下拉列表。let dd = document.getElementById('dd')
:獲取ID為dd
的元素,即B說的數下拉列表。let btn = document.getElementById('btn')
:獲取ID為btn
的元素,即"Come On!"按鈕。
接下來是按鈕的點擊事件處理函數:
btn.onclick = function(){...}
:當按鈕被點擊時執行該函數。let sj1 = Math.floor(Math.random()*3)
:生成一個0到2之間的隨機整數,用于確定A的實際手指數。let sj2 = Math.floor(Math.random()*(5-sj1)+sj1)
:生成一個在sj1和4之間的隨機整數,用于確定A實際說的數。let c = cc.value-0
:獲取B的手指數下拉列表選中的值,并轉換為數字類型。let d = dd.value-0
:獲取B說的數下拉列表選中的值,并轉換為數字類型。aa.value = arr1[sj1]
:將A的手指數輸入框的值設置為arr1中根據sj1確定的手指數。bb.value = arr2[sj2]
:將A說的數輸入框的值設置為arr2中根據sj2確定的數。let a = aa.value-0
:將A的手指數轉換為數字類型。let b = bb.value -0
:將A說的數轉換為數字類型。
? ? ? ? 根據A和B的手指數、說的數以及B的手指數與說的數之間的邏輯關系,進行對應的比較和判斷,然后彈出相應的提示框。
if (a+c==d&&a+c!=b)
:如果A的手指數加上B的手指數等于B說的數,并且不等于A說的數,則彈出提示框顯示"B贏"。else if(a+c==b&&a+c!=d)
:如果A的手指數加上B的手指數等于A說的數,并且不等于B說的數,則彈出提示框顯示"A贏"。else
:其他情況下,即A和B說的數不一致或與手指數之和不符,則彈出提示框顯示"平"。
2.隨機生成20個100-200的整數,輸出最大的那個整數及其位置?
整體思路
創建一個長度為20的數組?
arr
,用來存儲隨機生成的整數。初始化?
max
?變量為0,用來記錄最大的整數。初始化?
y
?變量為0,用來記錄最大整數的位置。使用?
for
?循環來生成20個隨機整數,并將這些整數存儲在數組?arr
?中。在生成過程中,使用內部的?
for...in
?循環來遍歷數組?arr
,并比較每個元素與當前的最大值?max
。如果某個元素大于或等于?max
,則更新?max
?的值為該元素,并記錄其位置到?y
?變量中。循環結束后,對?
y
?值進行修正(加1),因為數組的索引是從0開始的,而位置是從1開始計數。最后,使用?
document.write()
?方法輸出最大的整數和它的位置到網頁中。
代碼講解?
//隨機生成20個100-200的整數,輸出最大的那個整數及其位置
let arr = new Array(20); // 聲明一個長度為20的數組arr
let max = 0; // 初始化最大值為0
let y = 0; // 初始化最大值位置為0for (let i = 0; i < 20; i++) { // 循環20次arr[i] = Math.floor(Math.random() * 101 + 100); // 生成100-200之間的隨機整數,并賦值給數組arr的第i個元素console.log(arr[i]); // 打印數組中的每個元素,用于查看生成的隨機整數for (const i in arr) { // 遍歷數組arrif (max <= arr[i]) { // 如果當前元素大于或等于最大值max = arr[i]; // 更新最大值y = Number(i); // 記錄當前最大值的位置}}
}y += 1; // 將位置加1,以符合人類的計數習慣(位置從1開始)document.write('最大的數為:' + max); // 在網頁中輸出最大的整數
document.write('在第' + y + '位'); // 在網頁中輸出最大整數的位置
代碼解釋:
? ? ? ?首先,聲明了一個長度為20的數組arr,用于存儲隨機生成的整數。
? ? ? ?接著,通過一個循環生成20個100到200之間的隨機整數,并將它們賦值給數組arr的每個元素,并在控制臺打印出來。
? ? ? ?然后,通過嵌套的for...in循環遍歷數組arr,尋找最大的整數及其位置。如果當前元素大于或等于最大值max,則更新最大值和位置。
? ? ? ?最后,將位置加1,以符合人類的計數習慣,然后使用document.write()在網頁中輸出最大的整數和它的位置。
完整代碼?
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body></body>
</html>
<script>//隨機生成20個100-200的整數,輸出最大的那個整數及其位置let arr = new Array(20);let max=0let y = 0for (let i = 0; i <20; i++) {arr[i]= Math.floor(Math.random()*101+100)console.log(arr[i]);for (const i in arr) {if (max<=arr[i]) {max = arr[i]y = Number(i)}} }y += 1document.write('最大的數為:'+max)document.write('在第'+y+'位')
</script>