---
# System prepended metadata

title: 多維陣列
tags: [JavaScript]

---

# 多維陣列
###### tags: `JavaScript`

過去的筆記也有提到一部份 [2022鐵人賽 | 陣列array](https://hackmd.io/@yiting444/rko3wB3co/https%3A%2F%2Fhackmd.io%2F%40yiting444%2FSkArhShco)

```javascript=
const grades = [
[80, 90, 100, 95],
[75, 95, 85, 100],
[60, 80, 77, 90]
]
```
當要取其中的值時會使用`grades[0][1]`


## 範例一

以一個playlist的陣列其中有多個歌曲、歌手以及歌曲長度的陣列
示範實際應用
```javascript=
const playlist = [
['再遇見','蘇打綠','4:38'],
['長夜','芒果醬','2:53'],
['浪費一整天','宇宙人','3:45'],
['直到我遇見了你','李友廷','4:26'],
]
```
使用for loop將item遍歷出來
```javascript=
function createListItems( arr ) {
let str = "";
for ( let i = 0; i < arr. length; i++ ) {
// 遍歷每個陣列的[0]曲名[1]歌手[2]時間 放入li中轉為字串印在頁面上
str += ' <li>${ arr[i][0] }, by ${ arr[i][1] } - ${ arr[i][2] }</li>';
return items ;
```
## 範例二
```javascript=
//1. 創建一個多維數組來保存測驗問題和答案
const questions =[
[ ' 我有幾隻小狗?' , '8'],
[ ' 我有幾棟房子?' , '7'],
[ ' 我有幾隻腳?' , '6'],
[ '我幾年出生的?' , '1999' ]
]

// 2. 存儲正確回答的問題數
correctAnswers = 0;

// 3.for loop 
for ( let i = 0; i < questions. length; i++ ) {
    let question = questions[i] [0] ; //每個陣列的第0項為問題
    let answer = questions[i] [1] ; //每個陣列的第1項為答案
    let response = prompt (question) ; //回答內容為prompt的內容

    if ( +response === answer ) { //使用+將string快速轉為number
    correctAnswers+=1;
}
// 4. 將correctAnswers印在頁面上
let html = `<h1>You got ${correctAnswers} question(s) correct</hl>`

document.querySelector ( 'main' ).innerHTML = html;
```
## 補充
由於prompt法的返回值為字串。
如果問題答案是數值，則需要將變數的值轉換為==數字==

一元加號運算元 提供了一種將字串轉換為數位的快速方法。
在變數之前放置一個加號：+response

```javascript=
let a = "333" ;
console. log(a) // "333"
console. log(+a) // 333
console. log(!a) //false
```


