Передача динамических переменных в параметрах Google Charts

Я пытаюсь передать номер серии в параметре Google Chart через переменную. Однако он не принимает его как переменную, а вместо этого принимает как строку. На изображении Image1 вы можете видеть, что я передал в Series параметр SecondseriesColumnNumber как переменную и значение равно 1.

Изображение 1 Передача динамических переменных в параметрах Google Charts

Однако на выходе он рассматривает его как строку, а не как номер серии, как показано ниже.

Изображение 2

Передача динамических переменных в параметрах Google Charts

Остальные параметры учитывают значения правильно, но не серийные. Как я могу заставить это работать? Мой код ниже

var options = {
    title: title,
    width: width,
    height: height,
    bar: { groupWidth: '75%' },
    chartArea: { left: "8%", right: "8%", top: "10%", width: "100%", height: "75%" },
    backgroundColor: 'transparent',
    tooltip: { textStyle: { color: 'black' }, isHtml: true },
    isStacked: isStacked,
    seriesType: seriesType,
    series: { SecondseriesColumnNumber: { type: SecondseriesType } },
    hAxis: { slantedText: true }
};

var chart = new google.visualization.ComboChart($('DivSeries')[0]);

Пожалуйста, разместите все свои коды в самом вопросе. Коды во внешних ссылках или изображениях не разрешены в SO.

AndrewL64 03.01.2019 14:16

Я разместил свой код в самом вопросе, разве вы не видите? Это просто отладочная информация, которую я опубликовал как снимок экрана. Смешно, что это было отмечено как не по теме.

Hitesh 04.01.2019 04:55

Я проголосовал за повторное открытие этого.

AndrewL64 04.01.2019 11:54

Спасибо @AndrewL. Не понимаю логики модов, четкий вопрос со снимком экрана с ошибкой и кодом, включенным в блоки кода, все еще помечается

Hitesh 04.01.2019 11:57

Я искренне думаю, что вам следует включить больше кода, кроме переменной options. Например, как выглядит html, особенно элемент DivSeries, на который вы нацеливаетесь.

AndrewL64 04.01.2019 11:59

Моя проблема только в части кода с параметрами, поэтому я добавил только это. Однако, поскольку вы предлагаете добавить результат, я его тоже добавлю.

Hitesh 04.01.2019 12:01

@Hitesh Просто комментарий о модерации: это (большую часть времени) основано на сообществе. Если кто-то отметит вопрос или кто-то с достаточной репутацией проголосует за закрытие, он будет поставлен в очередь. Эта очередь довольно большая (~ 8k вопросов), и люди могут оставить открытой или проголосовать за закрытие до 40 вопросов. По моему опыту, большую часть времени вопрос будет закрытым, даже если он «не заслуживает этого» или если его исправят в последнее время. Это потому, что я думаю, что люди очень быстро встают в очередь и часто не обращают на это достаточно внимания, в большинстве случаев вопрос действительно не по теме.

Pac0 15.01.2019 00:52

Чтобы также встать на сторону других участников, проголосовавших за закрытие, я хотел бы подчеркнуть последний комментарий AndrewL, чтобы добавить некоторый целевой html и необходимый код для легкого воспроизведения вашей проблемы при запуске с нуля, например, добавить импорт тега <script> библиотека google-vizualisation, которую вы используете. Это поможет в вашем вопросе иметь четкое минимальный воспроизводимый пример (см. codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question‌). Хорошая новость об этой системе модерации заключается в том, что, поскольку кто-то проголосовал за повторное открытие вопроса, теперь он находится в другой очереди (гораздо меньшей), за которую я проголосовал.

Pac0 15.01.2019 00:59

(просто чтобы вы знали, в настоящее время есть 3 голоса, которые нужно возобновить, и 2, чтобы оставить закрытыми)

Pac0 15.01.2019 01:01

Итак, вы видите, что без единого изменения вопроса, он был довольно ясным и на него также был дан правильный ответ. Вот что я имел в виду. Мир !!

Hitesh 19.02.2019 09:28
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
10
878
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

проблема связана с синтаксисом JavaScript. вы не можете использовать переменную в качестве ключа в определении объекта. вы должны сначала создать объект, затем вы можете добавить дополнительные ключи с помощью переменных.

есть два способа получить / установить значения ключей объекта после того, как объект определен. оба следующих возвращают одинаковое значение для заголовка.

var title = options.title;
var title = options['title'];

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

var key = 'title';
var title = options[key];

в этом случае при необходимости определите статические параметры.

var options = {
    title: title,
    width: width,
    height: height,
    bar: { groupWidth: '75%' },
    chartArea: { left: "8%", right: "8%", top: "10%", width: "100%", height: "75%" },
    backgroundColor: 'transparent',
    tooltip: { textStyle: { color: 'black' }, isHtml: true },
    isStacked: isStacked,
    seriesType: seriesType,
    series: {},
    hAxis: { slantedText: true }
};

затем вы можете использовать переменную для дальнейшего определения опции серии.

var SecondseriesColumnNumber = 1;
options.series[SecondseriesColumnNumber] = { type: SecondseriesType };

Другие вопросы по теме