Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.05.2021, 17:12
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

И снова графики...
Привет. Строю гафики с помощью библиотеки Highcharts. На входе имею такой объект.
Object { weight: (6) […], weist: (6) […] }
weight: Array(6) [ {…}, {…}, {…}, … ]
0: Object { "2021-05-01": 100 }
1: Object { "2021-05-05": "99,9" }
2: Object { "2021-05-10": 99 }
3: Object { "2021-05-15": "98,5" }
4: Object { "2021-05-20": 98 }
5: Object { "2021-05-25": 97.5 }
length: 6

weist: Array(6) [ {…}, {…}, {…}, … ]
0: Object { "2021-05-01": 100 }
1: Object { "2021-05-05": "99,9" }
2: Object { "2021-05-10": 99 }
3: Object { "2021-05-15": 98 }
4: Object { "2021-05-20": 97 }
5: Object { "2021-05-25": 96.5 }
length: 6


Для графиков мне нужны такие массивы или это строки.Не пойму. Но нужны именно в таком виде

let date = [];
let total = [];
date = ['2021-05-01','2021-05-05',...]
total = [{
name:'weight',data:[100,99,98.5,98,97,5]
},
{name:'weist',data[100,99.9,...]}
]


Подскажите как собрать это дело )?
Ответить с цитированием
  #2 (permalink)  
Старый 31.05.2021, 17:24
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Сообщение от ureech
Подскажите как собрать это дело )?
Пройтись по датам... Они "скажут" номер позиции в итоговом массиве...
А циферки записать в другие массивы в нужную позицию.
Ответить с цитированием
  #3 (permalink)  
Старый 31.05.2021, 17:32
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

ureech,
объект нарисуйте.
Ответить с цитированием
  #4 (permalink)  
Старый 31.05.2021, 18:36
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Если я правильно понял...

const obj = { 
	weight: [
		{ "2021-05-01": 100},
		{ "2021-05-05": "99,9"},
		{ "2021-05-10": 99},
		{ "2021-05-15": "98,5"},
		{ "2021-05-20": 98 },
		{ "2021-05-25": 97.5 },
	],
	weist: [
		{ "2021-05-01": 100},
		{ "2021-05-05": "99,9"},
		{ "2021-05-10": 99},
		{ "2021-05-15": 98},
		{ "2021-05-20": 97},
		{ "2021-05-25": 96.5}
	]
}
let date = []
let total = [
	{name: 'weight', data: []},
	{name: 'weist', data: []}
]
for (let key in obj) {
	const ttl = total.find(e => e.name === key)
	for (let i = 0; i < obj[key].length; i++) {
		const a = Object.keys(obj[key][i])
		date[i] = a[0]
		ttl.data[i] = obj[key][i][a[0]]
	}
}
alert(JSON.stringify(date) + '\n' + JSON.stringify(total))

Последний раз редактировалось ksa, 31.05.2021 в 18:39.
Ответить с цитированием
  #5 (permalink)  
Старый 31.05.2021, 20:01
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

ksa, да так. Только у меня что то не хочет работать.Видимо с моим объектом что то не так. Буду смотреть.

рони, что значит нарисовать? Не понял.
Ответить с цитированием
  #6 (permalink)  
Старый 31.05.2021, 20:02
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Сообщение от ureech
что значит нарисовать? Не понял.
Вот я как раз "нарисовал" тебе объект.
Ответить с цитированием
  #7 (permalink)  
Старый 31.05.2021, 20:07
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

Только один момент.
let total = [
	{name: 'weight', data: []},
	{name: 'weist', data: []}
]

тут значение name так нельзя прописать. Они заранее не известны.
Ответить с цитированием
  #8 (permalink)  
Старый 31.05.2021, 20:08
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

У меня Uncaught TypeError: ttl is undefined. не пойму почему. Объекты вроде одинаковые.
Ответить с цитированием
  #9 (permalink)  
Старый 31.05.2021, 20:16
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

Разобрался с ошибкой.
Ответить с цитированием
  #10 (permalink)  
Старый 31.05.2021, 20:25
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Сообщение от ureech
тут значение name так нельзя прописать. Они заранее не известны.
Ясно...

const obj = { 
	weight: [
		{ "2021-05-01": 100},
		{ "2021-05-05": "99,9"},
		{ "2021-05-10": 99},
		{ "2021-05-15": "98,5"},
		{ "2021-05-20": 98 },
		{ "2021-05-25": 97.5 },
	],
	weist: [
		{ "2021-05-01": 100},
		{ "2021-05-05": "99,9"},
		{ "2021-05-10": 99},
		{ "2021-05-15": 98},
		{ "2021-05-20": 97},
		{ "2021-05-25": 96.5}
	]
}
let date = []
let total = []
for (let key in obj) {
	let ttl = {
		name: key,
		data: []
	}
	for (let i = 0; i < obj[key].length; i++) {
		const a = Object.keys(obj[key][i])
		date[i] = a[0]
		ttl.data[i] = obj[key][i][a[0]]
	}
	total.push(ttl)
}
alert(JSON.stringify(date) + '\n' + JSON.stringify(total))
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь по поиску готовой библиотеки JavaScript векторной графики как в Экселе Николай333 Библиотеки/Тулкиты/Фреймворки 1 08.06.2020 17:13
вылет снова в очередь на fifa.com fifa2018 Ваши сайты и скрипты 0 10.07.2018 15:53
И снова прошу помощи!!!!!!!! igrovik Элементы интерфейса 5 12.01.2016 04:47
красивые графики для сайта him Общие вопросы Javascript 7 06.08.2014 11:43
динамические графики Sveta Общие вопросы Javascript 3 21.01.2013 13:55