2009-12-23 64 views
0

我有一個集合,看起來像:循環通過JavaScript採集,輸出自定義文本

var stuff = new Array(); 

    stuff["col1"] = new Array(
      "key", "value", 
      "key2", value2" 

    ); 

而另外一個看起來像:

var fun = { 

    "key": "value", 
    "key2": "value2" 
} 

我通過每一個需要循環,並輸出例如:

INSERT Table1 (c1, c2) VALUES (key, value) 

其中值'key'和'value'來自javascript數組。

(順便說一句,他們是兩個數組或?)

回答

1

實際上stuff["col1"]創建一個對象,並且存儲與col1作爲密鑰的陣列。代碼很好。

此遍歷陣列和對象二者:

<script> 
var stuff = new Array(); 

stuff["col1"] = new Array(
    "key", "value", 
    "key2", "value2" 
); 

var fun = {"key": "value", "key2": "value2"}; 

var fun2 = {} 
for (var i in stuff["col1"]) { 
    if (i % 2 == 0) { 
     key = stuff["col1"][i]; 
     value = stuff["col1"][i+1] 
     fun2[key] = value; 
    }; 
} 

for (var k in fun) { 
    document.write("INSERT Table1 (c1, c2) VALUES ('" + k + "', '" + fun[k] + "')  <br/>"); 
} 

for (var k in fun2) { 
    document.write("INSERT Table1 (c1, c2) VALUES ('" + k + "', '" + fun2[k] + "') <br/>"); 
} 


</script> 
2

首先,你不能真正做到陣列[「字符串」。數組只能有編號索引。對象可以有字符串索引。所以,你的代碼應該是這樣的:

var stuff = new Array(); 

stuff[0] = new Array(
     "key", "value", 
     "key2", value2" 

); 

要循環thorugh在陣列(或物體)的每個元素,你可以使用每個:

for each(var row in stuff){ 
    document.write("INSERT INTO Tatble1 (c1, c2) VALUES ("+row[0]+", "+row[1]+")"); 
} 

不,他們不是兩個數組。第一個是數組,另一個是對象。例如:

fun["key"];//=="value";