大家好!今天我會再延續昨天的主題,稍微介紹一下該如何做出在object中的object~
以昨天的例子來看,在我的user object中,有一個屬性是FavoriteSubject,也就是最喜歡的科目,但我希望當我存取這個元素時,可以存取其它相關的元素,像是分數,指導教授......等,這時我們就會需要再設計一個object。
那我們該怎麼做呢?其實做法和array很像~讓我們直接來看範例:
let user = {
name : 'Tim',
email : 'abc12345@gmail.com',
age : 20,
FavoriteSubject : [
{s_name : 'Programming', prof : 'Chang',score : 80},
{s_name : 'Algorithm', prof : 'Tsai', score : 90}
],
printFav(){
this.FavoriteSubject.forEach( subject => {
console.log(`${subject.s_name}, ${subject.prof}, ${subject.score}`);
});
}
};
user.printFav();
首先在FavoriteSubject中,我希望其內部的各個科目都能記載名稱、指導教授和成績。in order to do that,我們可以使用陣列來存它們的資料,陣列中的每一個元素都要宣告我們想要存入的三個元素,所以我們就只要用大括號"{ }"把三個元素都存入,這樣就好了~
接下來是printFav()這個函式,我希望可以呼叫此函式時可以把FavoriteSubject中的所有元素印出,這邊就可以使用forEach這個method,如同它的名稱,功用就是對每一個元素都做某一件事情,那forEach後面的括號中即為我們想要做的事情,這裡的subject代表的是我們宣告了subject這個變數,來代表陣列裡的每一個元素,所以它的名稱不一定要是subject,我們自行決定就好了,再來,後面的=>代表我們這裡是宣告function,而大括號中就是我們想要做的事情囉!所以我們就把印出內部元素的code打在這邊~這樣就大功告成了!來看看成果~
今天的教學,剛開始看的話可能會覺得很複雜,所以非常建議大家看完這一篇可以先自行練習一下這些概念,特別是類似printFav這樣的函式喔~~那我們明天見囉!