В качестве альтернативы, вот функция, которая заполнит ассоциативный массив; ключи будут тегами, а значения - количеством вхождений этого тега.
var tagCounts = []; // Global variable here, but could be an object property or any array you like really
function countTags(tags, tagCounts)
{
$.each(tags, function(i, item) {
var tag = item.tags; // This would change depending on the format of your JSON
if(tagCounts[tag] == undefined) // If there's not an index for this tag
tagCounts[tag] = 0;
tagCounts[tag]++;
});
}
Таким образом, вы можете вызывать эту функцию для любого числа массивов тегов, передавая ваш массив tagCounts (итоги), и он будет агрегировать итоги.
var tags1 = [{"tags":"Sales"},{"tags":"Reporting"},{"tags":"Transportation"},{"tags":"Hospitality"}];
var tags2 = [{"tags":"Reporting"},{"tags":"Transportation"}];
var tags3 = [{"tags":"Reporting"},{"tags":"Hospitality"}];
countTags(tags1, tagCounts);
countTags(tags2, tagCounts);
countTags(tags3, tagCounts);
Тогда вы можете прочитать их так:
for(var t in tagCounts)
// t will be the tag, tagCounts[t] will be the number of occurrences
Рабочий пример здесь: http://jsfiddle.net/UVUrJ/1/
Ответ qw3n, на самом деле, является более эффективным способом выполнения действий, так как вы только просматриваете все теги один раз, но если у вас нет действительно огромного JSON-источника, разница не будет заметна.