Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.04.2016, 15:14
Новичок на форуме
Отправить личное сообщение для masquitos@mail.ru Посмотреть профиль Найти все сообщения от masquitos@mail.ru
 
Регистрация: 21.04.2016
Сообщений: 5

Преобразовать массив объектов
Коллеги, подскажите как преобразовать массив объектов из
[{"Fio":"Ivanov","Date":"January 16","Parametr":"200"},{"Fio":"Petrov","Date":"January 16","Parametr":"300"},{"Fio":"Ivanov","Date":"February 16","Parametr":"100"},{"Fio":"Petrov","Date":"February 16","Parametr":"150"},{"Fio":"Ivanov","Date":"March 16","Parametr":"400"},{"Fio":"Petrov","Date":"March 16","Parametr":"500"},{"Fio":"Sidorov","Date":"March 16","Parametr":"300"}]



в:
[{"Month":"January","Ivanov":"200","Petrov":"300"},{"Month":"February","Ivanov":"100","Petrov":"150"},{"Month":"March","Ivanov":"400","Petrov":"500","Sidorov":}]

Последний раз редактировалось masquitos@mail.ru, 21.04.2016 в 18:08.
Ответить с цитированием
  #2 (permalink)  
Старый 21.04.2016, 15:23
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Что является источником этого объекта?
Ответить с цитированием
  #3 (permalink)  
Старый 21.04.2016, 15:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

masquitos@mail.ru,
ваши данные даже не скопировать
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #4 (permalink)  
Старый 21.04.2016, 16:38
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

var a = [{
	"Fio": "Ivanov",
	"Date": "January 16",
	"Parametr": "200"
}, {
	"Fio": "Petrov",
	"Date": "January 16",
	"Parametr": "300"
}, {
	"Fio": "Ivanov",
	"Date": "February 16",
	"Parametr": "100"
}, {
	"Fio": "Petrov",
	"Date": "February 16",
	"Parametr": "150"
}, {
	"Fio": "Ivanov",
	"Date": "March 16",
	"Parametr": "400"
}, {
	"Fio": "Petrov",
	"Date": "March 16",
	"Parametr": "500"
}, {
	"Fio": "Sidorov",
	"Date": "March 16",
	"Parametr": "300"
}];

var months = {};

a.forEach(function(item) {
	months[ item['Date'] ] = true;
});

var b = [];

Object.keys(months).forEach(function(month) {
	var newObj = {};
	newObj['Month'] = month.replace(/[\d+\s]/g, '');

	a.forEach(function(obj) {
		if (obj['Date'] == month) {
			newObj[ obj['Fio'] ] = obj['Parametr'];
		}
	});

	b.push(newObj);
});

console.log( JSON.stringify(b) );
Ответить с цитированием
  #5 (permalink)  
Старый 21.04.2016, 16:44
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070


<script>
 var data = [{
        Fio: "Ivanov",
        Date: "January 16",
        Parametr: "200"
    }, {
        Fio: "Petrov",
        Date: "January 16",
        Parametr: "300"
    }, {
        Fio: "Ivanov",
        Date: "February 16",
        Parametr: "100"
    }, {
        Fio: "Petrov",
        Date: "February 16",
        Parametr: "150"
    }, {
        Fio: "Ivanov",
        Date: "March 16",
        Parametr: "400"
    }, {
        Fio: "Petrov",
        Date: "March 16",
        Parametr: "500"
    }, {
        Fio: "Sidorov",
        Date: "March 16",
        Parametr: "300"
    }],
    obj = {},
    data = data.reduce(function(b, c) {
        var a = c.Date.split(" ")[0];
        void 0 === obj[a] && (obj[a] = b.length, b[b.length] = {Month: a});
        a = obj[a];
        b[a][c.Fio] = c.Parametr;
        return b
    }, []);

document.write(JSON.stringify(data))
  </script>
Ответить с цитированием
  #6 (permalink)  
Старый 21.04.2016, 18:11
Новичок на форуме
Отправить личное сообщение для masquitos@mail.ru Посмотреть профиль Найти все сообщения от masquitos@mail.ru
 
Регистрация: 21.04.2016
Сообщений: 5

Рони, спасибо!
Ваш код работает, буду его изучать.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив объектов voodoo_dn Общие вопросы Javascript 8 26.12.2014 15:44
Node.js, lodash преобразовать массив MMXi AJAX и COMET 3 07.12.2014 10:48
Массив объектов doox911 Библиотеки/Тулкиты/Фреймворки 6 16.01.2014 22:36
преобразовать php массив в массив js zebulun Общие вопросы Javascript 12 02.09.2011 00:49
Массив объектов или объект объектов vladlen Общие вопросы Javascript 19 30.10.2010 03:10