如何在javascript中动态创建哈希表

时间:2012-05-12 11:10:47

标签: javascript hashtable

我有一个Web应用程序,它将返回JSON作为响应,其响应如下:

{"album1" : "track1" , "album1" : "track2" , "album1" : "track3" , "album2" : "track1"}

请注意后端的架构不在我手中,我无法改变它创建json的方式(重复键)

所以我想在javascript中创建一个哈希表,我的哈希表的概念应该是这样的:

"album1" : ["track1" , "track2" , "track3"]

我的问题是如何在javascript中创建此类行为?

我知道如何创建hashmap但不知道哈希表。

1 个答案:

答案 0 :(得分:0)

如果这个结构保持不变,那么你可能会破解一个能够完成它的功能。下面的内容如下

var response = '{"album1" : "track1" , "album1" : "track2" , "album1" : "track3" , "album2" : "track1"}'
.replace(/}?{?/g, '');

var sanitisedData = {};

var transform = response.split(',').map(function(item){
    return JSON.parse('{' + item + '}');
}).forEach(function(item){
    var key = Object.keys(item)[0];
    if(!sanitisedData [key]) sanitisedData [key] = [];
    sanitisedData [key].push(item[key]);
});

//output - {"album1":["track1","track2","track3"],"album2":["track1"]}