如何替换JSON对象数组中某个键的所有值

时间:2017-07-27 23:27:44

标签: javascript jquery

我有一个JSON对象数组,例如,people包含数据,例如:

[
  {
    name : 'John',
    age : '7'
  },
  {
    name : 'Mary',
    age : '70'
  },
  {
    name : 'Joe',
    age : '40'
  },
  {
    name : 'Jenny',
    age : '4'
  }
]

我想将age中的所有字符串值替换为其对应的整数,以便按age排序。或者添加一个键,例如ageI和整数值。

我可以遍历数组,但是,有没有更好的方法来做到这一点,例如在jQuery中使用一个命令?

2 个答案:

答案 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));
相关问题