我有以下对象数组
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
答案 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;
答案 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;
}