Javascript перебрать json

317
15 мая 2017, 00:39

Имею JSON такого вида:

[{"Id":"110","Fam":"Вальков","Name":"Илья","Lastname":"Васильевич","FullName":"Вальков Илья Васильевич ","Datebirth":"17.05.2017","DateRecord":"13.05.2017","Lgotcat":"ТТ","DateInvitation":"27.05.2017"},{"Id":"111","Fam":"Федоров","Name":"Евгения","Lastname":"Юрьевич","FullName":"Федоров Евгения Юрьевич ","Datebirth":"18.05.2017","DateRecord":"13.05.2017","Lgotcat":"ТТ","DateInvitation":"31.05.2017"},{"Id":"112","Fam":"Кайзер","Name":"Илья","Lastname":"Юрьевич","FullName":"Кайзер Илья Юрьевич ","Datebirth":"11.05.2017","DateRecord":"13.05.2017","Lgotcat":"УВОВ","DateInvitation":"26.05.2017"},{"Id":"104","Fam":"Васильева","Name":"Анжелика","Lastname":"Валерьевна","FullName":"Васильева Анжелика Валерьевна ","Datebirth":"05.01.1957","DateRecord":"08.05.2017","Lgotcat":"ВТ","DateInvitation":"10.05.2017"},{"Id":"108","Fam":"Петро","Name":"Вадим","Lastname":"Викторович","FullName":"Петро Вадим Викторович ","Datebirth":"11.05.2017","DateRecord":"11.05.2017","Lgotcat":"ВТ","DateInvitation":"19.05.2017"},{"Id":"109","Fam":"Димидов","Name":"Евгений","Lastname":"Олегович","FullName":"Димидов Евгений Олегович ","Datebirth":"12.05.2017","DateRecord":"11.05.2017","Lgotcat":"ВТ","DateInvitation":"28.05.2017"}] 

Нужно создать массив, или другой JSON со всеми видами Lgotcat полученными из исходного JSON.

А также посчитать количество записей по каждой Lgotcat

Как мне видится, что-бы это реализовать нужно в цикле перебрать все Lgotcat из JSON и проверять на уникальность каждого и добавлять в массив типа типа string.

А потом еще одним циклом выводить количество записей по каждой категории.

Может есть более подходящее решение под мою задачу?

Answer 1

var jsn = '[{"Id":"110","Fam":"Вальков","Name":"Илья","Lastname":"Васильевич","FullName":"Вальков Илья Васильевич ","Datebirth":"17.05.2017","DateRecord":"13.05.2017","Lgotcat":"ТТ","DateInvitation":"27.05.2017"},{"Id":"111","Fam":"Федоров","Name":"Евгения","Lastname":"Юрьевич","FullName":"Федоров Евгения Юрьевич ","Datebirth":"18.05.2017","DateRecord":"13.05.2017","Lgotcat":"ТТ","DateInvitation":"31.05.2017"},{"Id":"112","Fam":"Кайзер","Name":"Илья","Lastname":"Юрьевич","FullName":"Кайзер Илья Юрьевич ","Datebirth":"11.05.2017","DateRecord":"13.05.2017","Lgotcat":"УВОВ","DateInvitation":"26.05.2017"},{"Id":"104","Fam":"Васильева","Name":"Анжелика","Lastname":"Валерьевна","FullName":"Васильева Анжелика Валерьевна ","Datebirth":"05.01.1957","DateRecord":"08.05.2017","Lgotcat":"ВТ","DateInvitation":"10.05.2017"},{"Id":"108","Fam":"Петро","Name":"Вадим","Lastname":"Викторович","FullName":"Петро Вадим Викторович ","Datebirth":"11.05.2017","DateRecord":"11.05.2017","Lgotcat":"ВТ","DateInvitation":"19.05.2017"},{"Id":"109","Fam":"Димидов","Name":"Евгений","Lastname":"Олегович","FullName":"Димидов Евгений Олегович ","Datebirth":"12.05.2017","DateRecord":"11.05.2017","Lgotcat":"ВТ","DateInvitation":"28.05.2017"}]'; 
var data = JSON.parse(jsn); 
var cats = {}; 
data.forEach(function(v) { 
  if(v.Lgotcat in cats) { 
    cats[v.Lgotcat]++; 
  } else { 
    cats[v.Lgotcat] = 1; 
  } 
}); 
console.log(cats);

Answer 2
var a = JSON.stringify(сюда вложи свой не совсемJSON); 
var a = JSON.parse(a).map(function(i) {
    return i.Lgotcat}); //получишь массив с Lgotcat;

далее не совсем понятно что считать =)

READ ALSO
Как работает forEach в javascript

Как работает forEach в javascript

Помогите понять как работает forEach в jsБылоб хорошо наглядный пример

718
Как написать расширение для Chrome меняющее исходный код страницы?

Как написать расширение для Chrome меняющее исходный код страницы?

Вообщем нужно написать расширение для своего пк, которое будет менять цифры на определенном сайте, а так же скрывать элемент, помогите пожалуйста

354
Как проверить строку на пустоту

Как проверить строку на пустоту

Какой функцией можно проверить строку на пустоту?

475