Javascript.RU

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

Вроде нашёл нужную опцию.(Боюсь сглазить)
var plotOptions = {
    series: {
	  connectNulls: true
    }
  };

Потестю пока)
Ответить с цитированием
  #22 (permalink)  
Старый 08.11.2020, 11:14
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

ureech,
так допишите код выше name, data, connectNulls: true
res.forEach(({title: name,sum: data}) => name in keys ||  (data = keys[name] = res.map(({title, sum}) => title == name ? +sum : null), series.push({
		name, data, connectNulls: true
	})));
Ответить с цитированием
  #23 (permalink)  
Старый 08.11.2020, 11:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

ureech,
<!DOCTYPE html>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/modules/data.js"></script>
<script src="https://code.highcharts.com/modules/exporting.js"></script>
<script src="https://code.highcharts.com/modules/accessibility.js"></script>
</head>
<body>
<div class="col-md-6"><div id = "container-line"></div></div><div id="slider"></div>
<script>
	Highcharts.setOptions({
		colors: ['#50B432', '#ED561B', '#DDDF00', '#24CBE5', '#64E572', '#FF9655', '#FFF263', '#6AF9C4']
	});
  res = [
  {
    "pubdate": "2020-10-29",
    "sum": 40,
    "title": "Молоко",
    "cat_title": "Еда",
    "rate": "1.00"
  },
  {
    "pubdate": "2020-10-31",
    "sum": 40,
    "title": "Молоко",
    "cat_title": "Еда",
    "rate": "1.00"
  },
  {
    "pubdate": "2020-11-01",
    "sum": 900,
    "title": "Бензин",
    "cat_title": "Авто",
    "rate": "1.00"
  },
  {
    "pubdate": "2020-11-02",
    "sum": 40,
    "title": "Молоко",
    "cat_title": "Еда",
    "rate": "1.00"
  },
  {
    "pubdate": "2020-11-03",
    "sum": 700,
    "title": "Бензин",
    "cat_title": "Авто",
    "rate": "1.00"
  },
  {
    "pubdate": "2020-11-04",
    "sum": 40,
    "title": "Молоко",
    "cat_title": "Еда",
    "rate": "1.00"
  },
  {
    "pubdate": "2020-11-06",
    "sum": 400,
    "title": "Бензин",
    "cat_title": "Авто",
    "rate": "1.00"
  },
  {
    "pubdate": "2020-11-07",
    "sum": 40,
    "title": "Молоко",
    "cat_title": "Еда",
    "rate": "1.00"
  }
]
	//if(res === null) alert('Нет данных');
	dte = res.map(x => x.pubdate);
	valute = 'руб';
	var chart = {
     type:'line'
	};
	var title = {
		style: {
			color: '#63a583'
		},
		text: ''
	};
	var subtitle = {
		style: {
			color: '#513e5c',
			fontSize: '15px'
		},
		text: valute + '.'
	};
	var xAxis = {
		categories: dte
	};
	var yAxis = {
		title: {
			text: 'Сумма (' + valute + '.)'
		},
		plotLines: [{
			value: 0,
			width: 1,
			color: '#808080'
		}]
	};
	var tooltip = {
		valueSuffix: valute + '.'
	};
	var legend = {
		layout: 'vertical',
		align: 'right',
		verticalAlign: 'middle',
		borderWidth: 0
	};
	var keys = {},
		series = [];
	res.forEach(({title: name,sum: data}) => name in keys ||  (data = keys[name] = res.map(({title, sum}) => title == name ? +sum : null), series.push({
		name, data, connectNulls: true
	})));
	console.log(dte)
	var json = {};
	json.chart = chart;
	json.title = title;
	json.subtitle = subtitle;
	json.xAxis = xAxis;
	json.yAxis = yAxis;
	json.tooltip = tooltip;
	json.legend = legend;
	json.series = series;
	$('#container-line').highcharts(json);
</script>
</body>
</html>
Ответить с цитированием
  #24 (permalink)  
Старый 08.11.2020, 11:22
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 765

Да не, я как опцию в общий код вставил.
https://jsfiddle.net/ureech/y89daesL/17/
Пусть по феншую будет)))

Последний раз редактировалось ureech, 08.11.2020 в 11:25.
Ответить с цитированием
  #25 (permalink)  
Старый 08.11.2020, 11:29
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 765

Спасибо вам большое. Пойду дальше мудрить).
Ответить с цитированием
  #26 (permalink)  
Старый 10.11.2020, 14:16
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 765

Привет.Возник вопрос по коду.
res.forEach( 
		({title: name,sum: data}) => name in keys ||  (data = keys[name] = res.map(({title, sum}) => title == name ? +sum : ''), series.push({name, data}))
		);

В массиве res[] кроме title есть ещё пару ключей,которые я хотел бы использовать вместо title в данном цикле. Можно ли как использовать,скажем,абстра ктную переменную var item вместо title и присваивать ей названия ключей массива,которые я буду передавать в ф-цию? Ну или как то по другому.Не знаю. Думаю суть понятна).
Ответить с цитированием
  #27 (permalink)  
Старый 10.11.2020, 14:40
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

ureech,
var nnn = 'title';
	res.forEach(({[nnn] : name,sum: data}) => name in keys ||  (data = keys[name] = res.map(({[nnn] : vvv, sum}) => vvv == name ? +sum : null), series.push({
		name, data, connectNulls: true
	})));
Ответить с цитированием
  #28 (permalink)  
Старый 10.11.2020, 14:58
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 765

Блин, порой кажется,ну вот уловил суть,а потом доходит,что ни хрена)))
Спасибо. А то хотел через if уже делать).
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Собрать массив и записать в localstorage mav1 Events/DOM/Window 2 06.07.2016 00:23
Собрать массив из таблицы V2oD2o jQuery 4 25.04.2016 17:04
Как собрать все данные из таблицы, и отправить массив на сервер optsar AJAX и COMET 14 11.12.2015 07:58
Собрать все одинаковые классы в массив в jQuery lev-otinov jQuery 3 25.09.2013 15:55
Собрать массив из элементов DOM Fairy-Wilbury Events/DOM/Window 4 13.09.2013 17:30