我有一个看起来像的集合:
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数组。
(顺便说一下,它们都是数组还是?)
答案 0 :(得分:2)
首先,你实际上不能做数组[“string”]。数组只能有编号索引。对象可以有字符串索引。所以你的代码应该是这样的:
var stuff = new Array();
stuff[0] = new Array(
"key", "value",
"key2", value2"
);
要遍历数组(或对象)中的每个元素,您可以使用每个元素:
for each(var row in stuff){
document.write("INSERT INTO Tatble1 (c1, c2) VALUES ("+row[0]+", "+row[1]+")");
}
不,它们不是两个阵列。第一个是数组,另一个是对象。例如:
fun["key"];//=="value";
答案 1 :(得分: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>