将数组(值列表)添加到json对象

时间:2011-09-22 16:38:29

标签: javascript json

我尝试遍历一些json(来自twitter的聚类twees)并计算特定关键字(hashtags)的存在频率,这样我就可以创建一个频繁单词的有序列表。
这(19)
那(9)
帽子(3)

这是我通过创建

完成的
var hashtags = [];  

我第一次添加新单词时添加单词并赋值1

hashtags[new_tag] = 1;

下次找到相同的worj我只是添加到数字

hashtags[hashtag]+=1;

结果是一个带有单词和值的简单结构。我可以用

列出我需要的东西
$.each(hashtags, function(i, val){
    console.log(i+ " - "+ val);
})

现在我意识到我还需要知道这些单词在哪里聚集在哪里。所以;我需要在我的“hashtags”中添加一个列表(数组)。

我想我尝试创建的是这样的json结构:

hashtags: {"this": 19, clusters: [1,3,8]},{"that": 9, clusters: [1,2]}

如何将数组添加到hashtags对象?

2 个答案:

答案 0 :(得分:2)

首先创建一个用于保存主题标签的对象:

var hashtags = {};

然后,如果还没有看到主题标签,请将其初始化:

hashtags[new_tag] = {
    count: 0,
    clusters: []
};

增量计数:

hashtags[new_tag].count += 1;

添加群集:

hashtags[new_tag].clusters.push(the_cluster);

答案 1 :(得分:1)

你想要的是{ }的一个对象(hashtags),因为你使用字符串作为键,而不是一个数组([ ]),如果你使用索引,那么它是合适的作为关键。我的结构如下:

var hashtags = {
    "this": { count: 19, clusters: [1, 3, 8] },
    "that": { count: 9, clusters: [1, 2] }
};

因此,当您添加新的哈希标记时,请执行以下操作:

hashtags[new_tag] = { count: 1, clusters: [cluster] },

并且,当您递增哈希标记时,请执行以下操作:

hashtags[hashtag].count++;
hashtags[hashtag].clusters.push(cluster);