簡體   English   中英

更改對象數組中的數據類型

[英]Change the data type in the array of Objects

我有如下的對象數組

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

您可以使用+前綴將數字文字轉換為數字:

 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); 

只需在每個“值”字段上調用.parseInt()。 例如:

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

您可以映射data.Results並在Value屬性上使用parseInt()

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

console.log(data);

但是,為什么需要這個呢? 也許您應該在實際訪問數據后考慮進行解析...

如果您可以通過基本方式做到這一點,它將看起來像:

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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM