группировка того же значения, которое возвращает $ .each jquery

0

Я возвращаю объекты json, которые, как оказалось, имеют одинаковую ценность с ними. Я хотел бы избежать повторения одной и той же ценности и просто объединить их, включая другие ценности, которые приходят с ними. Я пытаюсь получить длину объектов с одинаковым значением, чтобы я мог просто слить, но я никуда не денусь. Все, что у меня есть, - это фактическая длина значения, а не сколько раз они появлялись.

$.each(data, function(i, val)){
  var city = val.city;
  var name = val.name;
}

<!-- printing the results, they would all like this -->
Los Angeles
  George Martin
Los Angeles 
  Alex Dell
Los Angeles
  Tom Front
Sao Paulo
  Jean Mont
Sao Paulo 
  Steve Bald

Я хочу сгруппировать их по городу. Так что это не выглядит излишним. Я пытался это работать.

var newcity = null;
if(newcity !== city){
  city = city;
}
newcity = city;

Я также пытаюсь сделать это, что абсолютно глупо. подсчет результатов для города

var countcityobj = val.city.length;

Может ли кто-нибудь вести меня о том, как это сделать с помощью jquery? Благодарю.

  • 1
    вам нужно поделиться форматом JSON
Теги:

1 ответ

2

Вы имеете в виду что-то вроде

var map = {};
$.each(data, function (i, rec) {
    var vals = map[rec.city] ? map[rec.city] : map[rec.city] = [];
    vals.push(rec);
});

console.log(map)
//the object map will have the city name as the key ans all the records of the city in an array as the value

Демо: скрипка

  • 0
    спасибо за ответ, но я не вижу результата в скрипке.
  • 0
    Вы проверили консоль браузера?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню