Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何动态创建数据模型_Javascript - Fatal编程技术网

Javascript 如何动态创建数据模型

Javascript 如何动态创建数据模型,javascript,Javascript,我用javascript从服务器获取了这些Json数据 var mydata = JSON.parse('["X","Y","Z"]'); 下面是javascript中的以下数据模型 var mySchemasList = { schemas: [new SelectSchemaModel("A", false), new SelectSchemaModel("B", false), new SelectSchemaModel("

我用javascript从服务器获取了这些Json数据

var mydata = JSON.parse('["X","Y","Z"]');
下面是javascript中的以下数据模型

var mySchemasList = {
    schemas: [new SelectSchemaModel("A", false),
              new SelectSchemaModel("B", false),
              new SelectSchemaModel("C", false)
             ]
};
我想通过从mydata获取数据('A','B','C')来动态创建此模型

衷心感谢您的帮助


谢谢

你就不能像下面这样做吗

var i
var mySchemaList = {schemas:[]}; 
for (i = 0; i < mydata.length; i++) {
    mySchemaList.schemas.push( new SelectSchemaModel(mydata[i], false) );
}
vari
var mySchemaList={schemas:[]};
对于(i=0;i
在javascript中,使用
[]
操作符访问对象和数组。以下两行的作用完全相同:

mySchemasList.schemas;
mySchemasList['schemas'];
此外,对象或数组的每个成员自身的行为类似于一个变量。因此,您可以为其指定值、对象或数组:

mySchemasList = {};
当一个变量(或属性)被声明但没有赋值时,它的值是未定义的。因此,您只需通过以下方式进行检查:

if (mySchemasList === undefined) mySchemasList = {};
或者,您也可以使用
|
短路,因为
未定义的
被认为是错误的:

mySchemasList = mySchemasList || {};
综上所述,以下两个示例的作用完全相同

例1:

var mySchemasList = {
    schemas : []
}
例2:

var mySchemasList = {};
mySchemasList.schemas = [];
现在您已经在mySchemasList.schemas中创建了一个数组,您可以开始将其他对象推入其中:

mySchemasList.schemas.push(new SelectSchemaModel("A", false));
mySchemasList.schemas.push(new SelectSchemaModel("B", false));
mySchemasList.schemas.push(new SelectSchemaModel("C", false));
将其包装在for循环中解析JSON数据,您可以执行以下操作:

var mydata = JSON.parse(ajax.responseText);
for (var i=0; i<mydata.length; i++) {
    mySchemasList.schemas.push(new SelectSchemaModel(mydata[i],false));
}
var mydata=JSON.parse(ajax.responseText);

对于(var i=0;iYou需要JavaScript以其支持的任何协议与后端通信。我建议创建基于rest的web服务,返回数据(JSON/XML格式)通过javascript调用webservice,然后从JSOn创建相应的模型。@Innovation我可以从后端发送JSOn数据,但我需要帮助在javascript中从JSOn创建模型