我尝试遍历一些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对象?
答案 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);