循环遍历javascript集合,输出自定义文本

时间:2009-12-23 17:37:31

标签: 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数组。

(顺便说一下,它们都是数组还是?)

2 个答案:

答案 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>