2014-04-30 174 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]));