2016-08-03 1 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 (улица, 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 без radix? :) – naveen

+0

' parseInt (значение, 10) ' –

+1

@naveen Спасибо, исправлено ! – 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)); 
Смежные вопросы