之前已經有複習過陣列(array),今天來複習物件(object)。
物件是有名字但沒有順序的資料管理結構,所以在操作物件時,就需要知道key是什麼,key也就是資料的名字。
至於陣列的話,因為它沒有名字,但是有排序,所以則是用它的排序把資料取出。

宣告物件
一樣開頭先來看看要怎麼宣告一組物件。
這邊一樣先從const或let開始,接著寫出想要幫這組物件取什麼名字,
再來用{ }符號把陣列資料給框起來。
因為物件裡面的資料會有名字,所以這裡有個跟陣列比較不同的地方,
那就是每個資料都要用key做標示,也就是標上名字。
變成是{key: value}這樣的呈現方式。
實際上就會變成這個樣子,以下這樣的狀況,用文字來說明也就是
addessBook這個物件資料裡有name、age、phoneNumber、hobby這幾個屬性。
image

取出物件資料
想取出物件資料的話,一樣也要先打出物件的名字,告訴電腦我們要的是哪個物件,接著用 .屬性名稱(key),指定要取出哪一個屬性的內容。

注意!
如果需要用變數來取得其中一個屬性的值,就會需要用[變數]來取得,例如下圖這樣。



更新物件內容
接下來看看要怎麼更新物件各屬性的內容。

1. 更新內容為字串的物件屬性
使用方式:一樣要寫出自己要更新的物件名稱,接著在[]中指定是哪一個屬性,
最後用等於符號(=)更新這個屬性的內容。
當我想要多一組電話號碼的時候,實際寫法也就會變成下面這樣

image
 

2. 更新內容為數字的物件屬性

(1)直接用等於符號更新數值。
addressBook.age = 19
(2)用+=1,改變他的數字。
addressBook.age += 1
(3)對取出的物件使用++運算子。
addressBook.age++
 

增加物件屬性

如果想要在既有物件資料中,增加其他屬性資料的話,要用什麼方法呢?
 

方法很簡單,跟上面一樣要先寫出物件的名稱,接著一樣使用.屬性名稱(key),最後加上等於符號,再加上要加入的值。
就像下圖這樣,在加入生日,最後顯示出來的內容就會多了生日。


把陣列和物件結合在一起
陣列和物件其實是可以結合在一起的,以這次的通訊錄例子來說的話,
通訊錄裡面一定會有很多人的資料,會有朋友a、朋友b、朋友c....
一個addressBook,就是一組朋友資料,當收集到的朋友資料變多,
也就可以把這些物件資料,放在一個陣列裡面,也就是[]中間包著多個{}。
實際呈現就會是下圖這樣。
image

那要怎麼存取在陣列中的物件呢?
假設我們要讀取Hebe這個資料。
我們可以先思考陣列和物件的存取方式,陣列是用順序來存取資料,所以是用數字,再用物件key存取資料。
回過頭來看看Hebe這個資料在什麼地方。
它在陣列中的第二筆資料,但是陣列順序是從0開始算起,實際上的排序就會是1,然後Hebe的物件屬性是name。
那想要存取Hebe的寫法也就會是這個樣子。

那想要存取Hebe的寫法也就會是這個樣子。
addressBook[1]['name']

目前自己還沒有太多實作的經驗,偶爾還是會把這兩個資料管理結構搞混。
不過等使用次數多了,應該就可以不用思考就正確地使用這兩個資料管理結構。
重新複習後,思緒也又再更清楚一點了。
接下來會進入一個更困難的環節就是條件判斷和迴圈的複習,
寫複習文章寫到肚子餓的我,今天就先告一段落吃飯去了。
掰餔!

arrow
arrow
    創作者介紹
    創作者 文科少女寫程式 的頭像
    文科少女寫程式

    文科少女學程式

    文科少女寫程式 發表在 痞客邦 留言(0) 人氣()