2016-09-21 59 views
-2

我有地圖daySubjectssubject陣列我也有days數組來存儲「Sunday to Saturday」 我有使用這些變量創建地圖對象角JS

{ 
"daySubjects": { 
    "MONDAY": { 
     "subject": [ 

     ] 
    }, 
    "TUESDAY": { 
     "subject": [ 

     ] 
    }, 
    "WEDNESDAY": { 
     "subject": [ 

     ] 
    }, 
    "THURSDAY": { 
     "subject": [ 

     ] 
    }, 
    "FRIDAY": { 
     "subject": [ 

     ] 
    }, 
    "SATURDAY": { 
     "subject": [ 

     ] 
    }, 
    "SUNDAY": { 
     "subject": [ 

     ] 
    } 
} 

}創建JSON這樣

+0

很酷。但爲什麼它是angularjs?你可能想要檢查[lodash](https://lodash.com/)庫,它提供了一個很好的方法來處理集合上的常見任務。 –

+0

角度或JavaScript的任何東西都可以,你可以使用提到的變量顯示如何使這至少一天嗎? – masSdev

+0

我不能夠實現這個我試過'var subject = []'\t'$ scope.timetable.daySubjects [「sunday」] = subject' – masSdev

回答

1

確定,如果我正確理解了這些問題,請參閱以下示例純javascript代碼:

var days = ["sun","mon","tue","wed","thu","fri","sat"]; 
var result = { 
    daySubjects : {} 
}; 
days.forEach(
    function(i){ 
     result.daySubjects[i] = { subject:[] }; 
    } 
); 

A執行此行,結果對象將包含:

{ 
    "daySubjects": { 
     "sun": { 
      "subject": [] 
     }, 
     "mon": { 
      "subject": [] 
     }, 
     "tue": { 
      "subject": [] 
     }, 
     "wed": { 
      "subject": [] 
     }, 
     "thu": { 
      "subject": [] 
     }, 
     "fri": { 
      "subject": [] 
     }, 
     "sat": { 
      "subject": [] 
     } 
    } 
} 

在JavaScript中,您必須注意所引用的對象是否已定義。例如:

var test = {}; 

// fails because test.x is not defined 
test.x[0] = 10; 

//works cause you create array object before using it 
test.x = []; 
test.x[0] = 10; 

是什麼使得它更容易,但問題在於,你可以在一個去定義整個嵌套的JSON對象結構。

+0

這對我有用!謝謝 – masSdev