Средство форматирования меток Highcharts возвращает внутри и снаружи инструкции if? Это правильно?

#javascript #jquery #highcharts

#javascript #jquery — jquery — запрос #высокие диаграммы #jquery #highcharts

Вопрос:

Использование форматировщика меток highcharts

http://api.highcharts.com/highcharts#yAxis.labels.formatter

Я использую приведенный ниже код для настройки первой метки и возврата значений для всех остальных. Это то, как я должен использовать return дважды в форматировщике? Пока это работает, я просто проверяю, что нет лучшего способа написать функцию. Я немного новичок в js и задаюсь вопросом, можно ли каким-то образом объединить возвращаемые данные?

Спасибо

jsfiddle здесь

 $(function () {
    $('#container').highcharts({
        chart: {
            marginBottom: 80
        },
        xAxis: {
            categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
        },

        yAxis: {
            labels: {
                //align: 'left',
                //x: 0,
                //y: -2,
                useHTML: true,
                formatter:function(){
                    if(this.isFirst){
                        return 'test';
                    }
                    return this.value;
                }
            }
        },

        series: [{
            data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
        }]
    });
});
  

Комментарии:

1. Что вы подразумеваете под «если возвращаемые данные можно каким-то образом объединить»? Вы имеете в виду однострочный формат? Для удобства чтения и функциональности это выглядит хорошо для меня.

2. @Ondkloss Я просто не знал, что могу использовать return более одного раза, и мне было интересно, так ли это должно быть написано.

3. Хорошо, я понимаю. Когда вы говорите «более одного раза», вы должны понимать, что после того, как произойдет первое return , остальная часть кода никогда не выполняется, поскольку функция уже передала свой ответ обратно вызывающему коду. Таким образом, это всегда будет случай либо первого return , либо второго. Никогда оба. Это отличный способ закодировать это.

4. @Ondkloss хорошо, мне казалось, что оба возвращают данные, но на самом деле условный оператор возвращает только первое значение или this.isFirst затем выполняется остальной код, возвращающий другие значения.

5. Ваш код в полном порядке. Как сказал @Anagio, для первой метки выполняется только первая return , для остальных она if() отрицательна, поэтому выполняется вторая return .