2014-04-14 87 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創建。 –