2015-05-29 110 views
0

我有此腳本轉換字符串數組對象數組highchart和JSON

var portfolio_in_arrears = []; 
var portfolio_future = []; 
var portfolio_good_standing = []; 
var portfolio_ingrace_period = []; 

$.each(JSON.parse(response.portfolio), function(index, value){ 
    portfolio_in_arrears.push(value.in_arrears); 
    portfolio_future.push(value.future_clients); 
    portfolio_good_standing.push(value.good_standing); 
    portfolio_ingrace_period.push(value.grace_period); 
}); 

和的highchart選項

series: [{ 
    name: 'Future', 
    data: portfolio_future //sample [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6] 
    }, { 
    name: 'In Grace Period', 
    data: portfolio_ingrace_period //sample [-0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5] 
    }, { 
    name: 'Arrears', 
    data: portfolio_in_arrears //sample [-0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0] 
    }, { 
    name: 'Good standing', 
    data: portfolio_good_standing //sample [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8] 
}] 

我併成功取回這部分,並從JSON響應解析數據和放在那裏相應的陣列

var portfolio_in_arrears = []; 
var portfolio_future = []; 
var portfolio_good_standing = []; 
var portfolio_ingrace_period = []; 

但遺憾的是,當我試圖綁定這些數組e系列選項,它沒有工作。當我在控制檯上檢查它時,例如執行console.log(portfolio_future),我看到這樣的

["146", "143", "123", "106", "106", "94", "76", "71", "69", "83", "66", "66", "98", "98", "96", "90", "85", "102", "102", "94", "135", "126", "111", "125", "116", "116", "108", "129", "113", "93", "102", "86", "86", "68", "81"] 

這對於一系列選項的正確陣列

[3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8] 

數組所以任何想法如何把這個

["146", "143", "123", "106", "106", "94", "76", "71", "69", "83", "66", "66", "98", "98", "96", "90", "85", "102", "102", "94", "135", "126", "111", "125", "116", "116", "108", "129", "113", "93", "102", "86", "86", "68", "81"] 

[146, 143, 123, 106, 106, 94, 76, 71, 69, 83, 66, 66, 98, 98, 96, 90, 85, 102, 102, 94, 135, 126, 111, 125, 116, 116, 108, 129, 113, 93, 102, 86, 86, 68, 81] 

,正如你所看到的,每個數字都沒有雙重的東西。

回答

1

您可以通過指定值是嚴格數字來解決此問題。使用parseInt()函數

這裏是你將如何使用它。

portfolio_in_arrears.push(parseInt(value.in_arrears)); 

示例here

0

要做到這一點,最簡單的方法是map數組到Number構造,像這樣:

portfolio_future = portfolio_future.map(Number); 
+0

這是使用它的方式? http://jsfiddle.net/868nzurv/1/它不適合我。 – Starx

+0

@Starx'map'不修改數組本身,它返回一個新的數組,每個元素都是調用'Number'函數的結果......我已經在你的[小提琴](http:// jsfiddle.net/868nzurv/2/) –

+0

不錯的一個。謝謝你給我看。 – Starx