2016-08-03 38 views
-3

我有以下數組中有一個數組在 數組。這些值在字符串中,我希望它是一個數字。什麼是 是在JavaScript中執行此操作的最佳解決方案。如何將字符串轉換爲嵌套數組中的數字?

[ 
    { 
     "key": "America", 
     "values": [ 
      [ 
       "1469664000000", 
       "1" 
      ], 
      [ 
       "1469750400000", 
       "13" 
      ], 
      [ 
       "1469836800000", 
       "2" 
      ], 
      [ 
       "1469923200000", 
       "1" 
      ], 
      [ 
       "1470009600000", 
       "1" 
      ], 
      [ 
       "1470096000000", 
       "1" 
      ] 
     ] 
    }, 
    { 
     "key": "India", 
     "values": [ 
      [ 
       "1469750400000", 
       "1" 
      ] 
     ] 
    }, 
    { 
     "key": "China", 
     "values": [ 
      [ 
       "1469664000000", 
       "2" 
      ], 
      [ 
       "1469836800000", 
       "1" 
      ], 
      [ 
       "1470096000000", 
       "12" 
      ] 
     ] 
    }, 
    { 
     "key": "Africa", 
     "values": [ 
      [ 
       "1470096000000", 
       "1" 
      ] 
     ] 
    }, 
    { 
     "key": "UK", 
     "values": [ 
      [ 
       "1469664000000", 
       "3" 
      ], 
      [ 
       "1469750400000", 
       "3" 
      ], 
      [ 
       "1469836800000", 
       "1" 
      ], 
      [ 
       "1469923200000", 
       "2" 
      ], 
      [ 
       "1470009600000", 
       "4" 
      ], 
      [ 
       "1470096000000", 
       "2" 
      ] 
     ] 
    } 
] 
+5

迭代數組和'parseInt函數在(STR,10) '每個數字。 –

回答

2

var data = [{"key":"America","values":[["1469664000000","1"],["1469750400000","13"],["1469836800000","2"],["1469923200000","1"],["1470009600000","1"],["1470096000000","1"]]},{"key":"India","values":[["1469750400000","1"]]},{"key":"China","values":[["1469664000000","2"],["1469836800000","1"],["1470096000000","12"]]},{"key":"Africa","values":[["1470096000000","1"]]},{"key":"UK","values":[["1469664000000","3"],["1469750400000","3"],["1469836800000","1"],["1469923200000","2"],["1470009600000","4"],["1470096000000","2"]]}]; 
 

 
data.forEach(function (o) { 
 
    o.values.forEach(function (values) { 
 
    values.forEach(function (value, i) { 
 
     values[i] = parseInt(value, 10); 
 
    }); 
 
    }); 
 
}); 
 

 
console.log(JSON.stringify(data, null, 4));

+2

parseInt without radix?:) – naveen

+0

'parseInt(value,10)' –

+1

@naveen Thanks,fixed ! – smarx

-1

您可以使用JSON.parse(你的JSON對象 或可能使用兩個forEachs

+0

我不認爲你知道'JSON.parse'的作用。 *「每個人使用兩個」*是廣泛的,並沒有真正回答任何問題。 –

0
var data = [{"key":"America","values":[["1469664000000","1"],["1469750400000","13"],["1469836800000","2"],["1469923200000","1"],["1470009600000","1"],["1470096000000","1"]]},{"key":"India","values":[["1469750400000","1"]]},{"key":"China","values":[["1469664000000","2"],["1469836800000","1"],["1470096000000","12"]]},{"key":"Africa","values":[["1470096000000","1"]]},{"key":"UK","values":[["1469664000000","3"],["1469750400000","3"],["1469836800000","1"],["1469923200000","2"],["1470009600000","4"],["1470096000000","2"]]}]; 

data = data.map(function(t){ 
    var newVals = t.values.map(function(vs){ 
     return vs.map(function(v){ 
     return parseInt(v, 10); 
    }); 
    }); 
    return {'key': t.key, values: newVals}; 
}); 
console.log(JSON.stringify(data)); 
相關問題