我有一个JSON对象数组,例如,people
包含数据,例如:
[
{
name : 'John',
age : '7'
},
{
name : 'Mary',
age : '70'
},
{
name : 'Joe',
age : '40'
},
{
name : 'Jenny',
age : '4'
}
]
我想将age
中的所有字符串值替换为其对应的整数,以便按age
排序。或者添加一个键,例如ageI
和整数值。
我可以遍历数组,但是,有没有更好的方法来做到这一点,例如在jQuery中使用一个命令?
答案 0 :(得分:2)
您可以使用forEach
修改array
:
var array = [
{
name : 'John',
age : '7'
},
{
name : 'Mary',
age : '70'
},
{
name : 'Joe',
age : '40'
},
{
name : 'Jenny',
age : '4'
}
]
array.forEach(obj => { obj.age = Number(obj.age) });
console.log(array);

或使用map
制作新数组:
var array = [
{
name : 'John',
age : '7'
},
{
name : 'Mary',
age : '70'
},
{
name : 'Joe',
age : '40'
},
{
name : 'Jenny',
age : '4'
}
]
console.log(
array.map(obj => ({ name: obj.name, age: Number(obj.age) }))
);

答案 1 :(得分:2)
如果您只想排序,只需使用回调排序
arr.sort((a,b) => parseInt(a.age, 10) - parseInt(b.age, 10));
如果希望值保持整数,请使用简单的循环
arr.forEach(e => e.age = parseInt(e.age, 10));