# 陣列(Array)及物件(Object) [參考](https://www.fooish.com/javascript/array/) [參考2](https://miahsuwork.medium.com/%E7%AC%AC%E5%9B%9B%E9%80%B1-javascript-%E9%99%A3%E5%88%97-array-%E8%88%87-%E7%89%A9%E4%BB%B6-object-25f13e3d3c92) ### 陣列 陣列可適用於重複性高的事務,例如老師希望你輸入全班成績,只用變數的話會變成: ``` var number1 = 90; var number2 = 33; var number3 = 82; ``` 不如包成一個陣列: ``` var scores = [90, 33, 82, ...] ``` 陣列的形式是: ``` 陣列名稱 = [ 第 0 個內容, 第 1 個內容, 第 2 個內容, ...] JavaScript 中,所有索引值(位置)都是 0 開始。 ``` 以下是基礎的陣列用法: ``` var 陣列名稱 = [ 第 0 個內容, 第 1 個內容, 第 2 個內容, ...] 陣列名稱[索引值] = 內容 //增加或改變陣列內容 陣列名稱.push(內容) //將內容增新到陣列尾端 陣列名稱.length //得到陣列長度(有幾個元素) ``` >在寫程式時遇到重複的動作,一定有方法能夠優化。 ``` 通常用來存放性質相近的資料 想像成一個列表物件,裡面含有幾個數值 // 陣列基本操作 box[1, 2, 3] // box 代表陣列名稱 // [] 內的值代表索引值(index),陣列中索引是從 0 開始 console.log(box.length)        // 印出 3,代表陣列長度 console.log(box[1])        // 索引為 1 時,印出 2 // 範例練習 var score = [20, 5, 100] console.log(score, score.length)    // 印出 [20, 5, 100] 3 console.log(score[score.length - 1]) // 印出 100,陣列長度減一代表最後一個數的索引 score.push(60)             // 在陣列最後新增一個數 score[score.length] = 80       // 在陣列最後新增一個數 console.log(score.length)      // 印出 5 ``` ### 物件 如果只是登記同學成績,陣列好像就夠了。但老師看你好像很熟悉 JaveScript ,進一步拜託你登記每位同學的名字、電話和成績。如果每種類別都用一個陣列好像太冗了,此時就可以使用物件: ``` var 物件名稱 = { key0 : value0; key1 : value1; ... } ``` 以上 value 的部分可以放值、字串、陣列、物件或甚至一個函式。當然物件也能和陣列一同使用,例如以下每位學生就是一個物件: ``` var students = [ peter, mary, ...] var peter = { name: 'Peter' phone: '0922' score: 100 } ``` 叫出 value 的方法有兩種: 物件名稱['key'] 和 物件名稱.key 。 ``` var peter = { name: 'Peter' phone: '0922' score: 100 } console.log(peter[name]) > Peter peter[score] = 88 console.log(peter) // { // name: 'Peter' // phone: '0922' // score: 88 // } ```