Как бы вы объединили Math.abs и toLocaleString() в одну строку?

#javascript #jquery #methods #kendo-ui

#javascript #jquery #методы #kendo-ui

Вопрос:

У меня есть некоторые данные в виде большого числа, и я хочу, чтобы значение было абсолютным, и я хочу, чтобы в значении были запятые.

Я работаю с пользовательским интерфейсом Kendo, который работает kendo.toString() , но, насколько я могу судить, форматирование в основном такое же, как .toLocaleString . Kendo использует шаблоны для отображения результатов данных, как показано ниже.

Фрагмент JS:

 function createWOffChart(payload, stdYAxis) {
        let i = Math.abs(payload[0].woffamt.toFixed(2));
        let j = Math.abs(payload[0].wuwdamt.toFixed(2));
        let k = Number(i)   Number(j);
        let total = k.toLocaleString();

        $("div[report='woff']").kendoChart({
            dataSource: {
                data: payload
                // template: "#= kendo.toString(value/1000000) #"
            },
            legend: {
                visible: true
            },
            schema: {
                data: "value"
            },
            seriesDefaults: {
                type: "column",
                stack: true
            },
            chartArea: {
                width: 260,
                height: 350
            },
            series: [{
                name: "WOffAmt",
                field: "woffamt", // req
                color: "#4dc3a1",
                template: "#= Math.abs(value) #"
            }, {
                name: "WUWDAmt",
                field: "wuwdamt", // req
                color: "#5d5348",
                template: "#= Math.abs(value) #"
                // template: 
            }],
            valueAxis: {
                labels: {
                    visible: true,
                    template: "#= Math.abs(kendo.toString(value/1000000)) #" // ------ this did not work
                },
                reverse: true // orients chart right side up
            },
            tooltip: {
                visible: true,
                template: "#= series.name #: #= Math.abs(value) #" // ------ this is where I want the chaining to happen
            }
        });
        console.log(payload);
        console.log(kendo.toString(payload[0].wuwdamt));
    }
 

Ответ №1:

Похоже, вам нужно сначала получить абсолютное значение, а затем использовать toString метод.

 kendo.toString(Math.abs(value / 1000000))
 

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

1. Привет, Нина, оказалось, что toLocaleString() это сработало, а не kendo.toString … не спрашивайте меня почему -_- Но ваш комментарий привел меня в правильном направлении, так что спасибо!