Используя Javascript, я пытаюсь преобразовать некоторые данные JSON в формат, используемый в базовой линейной диаграмме Highcharts.Преобразование данных JSON в формат в базовой линейной диаграмме Highcharts
То, что я должен начать с:
originalArray = [
['valueA', 1],
['valueA', 0],
['valueB', 9],
['valueB', 9],
['valueB', 3],
['valueC', 11]
]
А что я пытаюсь создать с помощью выше:
desiredArray = [{
name: 'valueA',
data: [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
}, {
name: 'valueB',
data: [0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 0, 0]
}, {
name: 'valueC',
data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
}]
Для некоторого дополнительного контекста 0-11 в originalArray[i][1]
ссылки в месяц (0 = январь), а desiredArray
- это список уникальных имен и количество их вхождений по месяцам.
До сих пор, я могу:
- Преобразование данных в новый массив объектов
- Для каждого уникального имени в
originalArray
- Создать новый объект в
desiredArray
, и установить атрибутname
- Добавить атрибут
data
, который содержит пустой массив
- Создать новый объект в
Но тогда я запускаю в беду, и не могу понять, как:
- Петля через
originalArray
- Если имя в
originalArray
совпадает с именем вdesiredArray
- Увеличение счетчика в массиве
seriesArray[i].data
, используя значениеoriginalArray[i][1]
как индекс (он всегда равен 0-11).
- Увеличение счетчика в массиве
- Если имя в
Вот я и спрашиваю:
- Что хороший способ итерации по моим
originalArray
, совпадает уникальные значения, и затем действует только на тех матчах нажать наdesiredArray
. - Какой самый лучший способ, чтобы увеличить счетчики в
desiredArray[i].data
Я открыт для использования библиотек, таких как underscore.js. Пытались понять это на пару дней, так что почти все идет в пределах Javascript.
Кстати, на счет в вашей записи в desiredArray VALUE млрд ошибается, я думаю, что ... должен быть 1 в данных [3]? –
@SMcCrohan Хороший улов, обновленный –
Где код? –