2014-04-30 133 views
0

我正在尝试创建一个javascript对象,以便我可以将它转换为json字符串以便通过php更新mysql表。我是新来的JavaScript,因此我按照一对夫妇在网络上的教程,但仍对象和JSON似乎无法收到此工作:从数组值创建javascript对象

var idArray =  [ 1, 2, 3]; 
var slideNo =  [ 1, 2, 3]; 
var isPublished = [ 0, 1, 0]; 
var floaText =  [ 1, 0 , 1]; 

var myObject = []; 

for(var i = 0; i < idArray.length; i++) { 
    myObject[i] = { 
     slideId : idArray[i], 
     slideNo : slideNo [i], 
     isPublished : isPublished [i], 
     floatText : floaText [i] 
    }; 
} 

alert(myObject[0].slideId); 

我似乎无法得到以上代码工作。我也尝试添加像这样的quoation makrs:

myObject[i] = { 
    slideId : "\"" + idArray[i] + "\"", 
    slideNo : "\"" + slideNo[i] + "\"", 
    isPublish : "\"" + isPublished[i] + "\"", 
    floatText : "\"" + floaText[i] 
}; 

但是,这似乎并不奏效。我究竟做错了什么?

+0

对不起,我其实有他们为[],而不是{}对数组 –

+0

根据您的示例slideArray,publishArray和floatArray不存在。你有他们名为slideNo,isPublished和floaText。 –

回答

2

看起来像你最近编辑修复的问题之一:你需要围绕你的阵列[],而不是{}

接下来,您需要更改数组变量名称以匹配您在for循环中使用的内容。

最后,myObject应该可能是一个数组,而不是一个对象,所以将它的{}更改为[]

这里是你的代码的更新版本:

var idArray =   [ 1, 2, 3]; 
var slideArray =  [ 1, 2, 3]; 
var publishArray = [ 0, 1, 0]; 
var floatArray =  [ 1, 0 , 1]; 

var myObject = []; 

for(var i = 0; i < idArray.length; i++) { 
    myObject[i] = { 
     slideId : idArray[i], 
     slideNo : slideArray[i], 
     isPublished : publishArray[i], 
     floatText : floatArray[i] 
    }; 
} 

alert(myObject[0].slideId); 
+0

谢谢,我做了这些改变(见上面的代码),但它似乎仍然失败。事实上,甚至没有出现警报框。还有其他建议吗? –

+0

我的代码工程:http://jsfiddle.net/CyGT5/ –

+0

而你的更新代码的工作原理:http://jsfiddle.net/CyGT5/1/ –

0

使用JSON.stringify到对象转换成JSON字符串

alert(JSON.stringify(myObject[i]));