2016-09-21 62 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