2016-08-03 4 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

으로 반복 사용할 수 있습니다 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

radix가없는 parseInt : – naveen

+0

'parseInt (value, 10)' –

+1

@naveen 고마워, 고정 ! – smarx

-1

당신은 JSON.parse (당신의 JSON 객체 를 사용하거나 어쩌면 (배열과`으로 parseInt 이상이 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)); 
관련 문제