【问题标题】:String formatting Javascript?字符串格式化Javascript?
【发布时间】:2014-04-14 14:20:49
【问题描述】:

我有一个显示日期和转换的数组。我想在转换后添加 +"%" 但我无法让它工作。我知道我正在使用一个数组,我无法在任何我想要的地方添加它。在 ConversionRate 之后添加 + "%" 的好方法是什么?

function (data) {
    var tdata = new google.visualization.DataTable();

    tdata.addColumn('date', 'Date');
    tdata.addColumn('number', 'Conversion');

    for (var i = 0; i < data.length; i++) {
        var dateStr = data[i].Date.substr(0, 4) + "-" + data[i].Date.substr(4, 2) + "-" + data[i].Date.substr(6, 2);
        tdata.addRow([new Date(dateStr), Number(data[i].ConversionRate)]);
    }
}

【问题讨论】:

  • 你看过formatters吗(我对这个库没有经验——通过谷歌快速搜索发现)

标签: javascript ajax arrays string-formatting


【解决方案1】:

这可能会起作用:

tdata.addRow([new Date(dateStr), Number(data[i].ConversionRate) + "%"]);

但你可能需要更换:

tdata.addColumn('number', 'Conversion');

与:

tdata.addColumn('string', 'Conversion');

或者,更好的选择,如Jamiec mentioned,是使用formatter

var formatter = new google.visualization.NumberFormat({suffix: '%'});
formatter.format(tdata, 0);

【讨论】:

  • 谢谢,我尝试了你的第一个建议。这就是为什么我觉得这很奇怪。更改为字符串会出现一些错误,因为我使用 Google Charts 显示数据。我已经以其他方式做到了
  • @KristofferAndersson:你尝试我的第二个建议了吗?
【解决方案2】:

扩展 javascript 的 String 对象...

像这样:

String.prototype.withPct = function(){
  return this + '%';
};

然后像这样使用它:

var pct = '9';
var withPercent = pct.withPct();

withPercent 将是:'9%'

但看起来您可能想要扩展 Number,在这种情况下,您会:

Number.prototype.withPct = function(){
  return this + '%';
};

Here is a fiddle

【讨论】:

  • 对不起,我太粗鲁了。 Extending built-in objects is bad pracice也没有描述如何将此解决方案应用于实际问题。
  • 呃...实际上,我说“然后像这样使用它:”描述了如何应用它。而且,这不是坏习惯……一点也不。这就是原型/原型继承的话。所有对象字面量都是通过 Object.prototype 创建的。
  • 这不是措辞或解释最好的问题,但显然是关于google.visualization.DataTable 的使用。您的答案需要解释如何使用您的代码在屏幕上呈现该数据表。
猜你喜欢
  • 1970-01-01
  • 2014-04-18
  • 1970-01-01
  • 1970-01-01
  • 2012-10-08
  • 2014-01-17
  • 1970-01-01
  • 2015-04-01
  • 2015-08-23
相关资源
最近更新 更多