更改对象数组中的数据类型

时间:2016-09-06 22:04:19

标签: javascript arrays object underscore.js

我有以下对象数组

Object {Results:Array[2]}
    Results:Array[2]
    [0-1]
      0:Object
             id=1     
             name: "Rick"
             Value: "34343"
      1:Object
             id=2     
             name:'david'
             Value: "2332"

如您所见,Objects数组中的Value字段是一个字符串。我希望所有这些都转换为数字。

最终数据应如下所示。请有人让我知道如何实现这一目标。

Object {Results:Array[2]}
    Results:Array[2]
    [0-1]
      0:Object
             id=1     
             name: "Rick"
             Value: 34343
      1:Object
             id=2     
             name:'david'
             Value: 2332

4 个答案:

答案 0 :(得分:1)

您可以使用+前缀将数字文字转换为数字:



var input = {
  Results: [{
    id: 1,
    name: "Rick",
    Value: "34343"
  }, {
    id: 2,
    name: 'david',
    Value: "2332"
  }]
}

for (var i = 0; i < input.Results.length; i++) {
  input.Results[i].Value = +input.Results[i].Value;
}

console.log(input);
&#13;
&#13;
&#13;

答案 1 :(得分:1)

只需在每个&#34;值&#34;上调用.parseInt()。领域。例如:`

for(var i in Results){
   if(Results[i].Value != ""){
       Results[i].Value = parseInt(Results[i].Value);
   }`
}

答案 2 :(得分:0)

您可以在值属性上映射data.Results并使用parseInt()

data.Results = data.Results.map(function(d) {
    d.Value = parseInt(d.Value, 10);
  return d;
}); 

console.log(data);

但是,你为什么需要这个?也许您应该考虑在实际访问数据后进行解析...

答案 3 :(得分:0)

如果你能以基本的方式做到这一点,它将如下所示:

function convertArrayValues (array) { // obj.Results goes here
  // cloning can be ommited
  var array = JSON.parse(JSON.stringify(array));
  for(var i = 0; i < array.length; i++) {
    array[i].Value = parseFloat(array[i].Value);
  }
  return array;
}