2014-04-14 90 views
-1

我有一个显示日期和转换的数组。我想在转换后添加“%”,但我无法让它工作。我知道,即时通讯使用数组我不能添加这个我想要的地方。在ConversionRate之后添加+“%”的好方法是什么?字符串格式化Javascript

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)]); 
    } 
} 
+0

你看着[格式化](HTTPS:/ /developers.google.com/chart/interactive/docs/reference#formatters)(我对这个库没有任何经验 - 快速的谷歌搜索发现) – Jamiec

回答

1

这可能会工作:

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

但是你可能需要更换:

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

有了:

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

或者,一个更好的选择,因为Jamiecmentioned,将使用formatter

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

谢谢,我试过你的第一个建议。这就是为什么我认为这很奇怪。使用Google Charts来显示数据时,更改为字符串会导致一些错误。我以其他方式做到了 – koffe14

+0

@KristofferAndersson:你有没有尝试我的第二个建议? – Cerbrus

+0

最后似乎工作。 Thx – koffe14

-1

扩展JavaScript的String对象...

像这样:

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

然后使用它像这个:

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

withPercent将是:'9%'

但它看起来像你可能要延长数,在这种情况下,你会:

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

Here is a fiddle

+0

downvote无评论? –

+0

对不起,我有多粗鲁。 [扩展内置对象是不好实践](http://stackoverflow.com/questions/14034180/why-is-extending-native-objects-a-bad-practice)也没有描述如何应用此解决方案到实际的问题。 – Jamiec

+0

呃...实际上,我说的“然后用它这样:”描述如何应用它。此外,这不是一个坏习惯...。这就是原型/原型继承词。所有对象文字均通过Object.prototype创建。 –