如何在javascript中创建列表字典

时间:2017-07-21 04:42:01

标签: javascript dictionary

我有一个如下表,我从mysql数据库中获取:

Col2   | Col3                   | Col4
1      | Name1(something_1234)  | Some_date
1      | Name1(something_3456)  | Some_date
2      | Name3(something_7890)  | Some_date
2      | Name4(something_0988)  | Some_date

我正在使用javascript将这些数据转换为html,如下所示:

<script>
            var new_col2 = [], new_col3 =[];
            {% for b in obj %}
            new_col2.push("{{b.col2 }}");
            new_col3.push("{{b.col3 }}");
            {% endfor %}
            console.log(new_col2);
            console.log(new_col3);
    </script>

是否可以使用javascript使用上面的for循环创建一个字典:

{'1': ['Name1(something_1234)', 'Name1(something_3456)'], '2': 'Name3(something_7890)', 'Name4(something_0988)']}

2 个答案:

答案 0 :(得分:1)

您可以这样做:

<script>
            var dictionary = {}
            {% for b in obj %}
                if (!dictionary["{{b.col2 }}"]) {
                    dictionary["{{b.col2 }}"] = [];
                }
                dictionary["{{b.col2 }}"].push({{b.col3 }});
            {% endfor %}
            console.log(dictionary);            
</script>

答案 1 :(得分:0)

假设obj是 javascript 对象列表 我们可以循环遍历列表,并将每一行推入我们将创建的地图中, 如果您不知道地图,请检查this

像这样的事情。

var myMap= new Map();
obj.forEach(function(element) {
   // my map set (key , value )
    myMap.set(element.col2,element.col3);
});

您可以访问键1 myMap.get(1);的值,这将返回使用键1映射的值。