将编号值映射到单独的对象中

问题描述 投票:0回答:1

我正在尝试从中映射一个数组:

[
  {
    "person_1": "jim",
    "person_2": "bob"
  }
]

对此:

people: [
  {
    "person": "jim"
  },
  {
    "person": "bob"
  }
]

现在,我的地图方法是选择每个值,但似乎效率很低:

const ogArray = [{
  "person_1": "jim",
  "person_2": "bob"
}]
const newArray = ogArray.map((person) => {
  return {
    people: [{
        person: person.person_1
      },
      {
        person: person.person_2
      }
    ]
  }
});

console.log(newArray);

上面的方法有效,但它不是 DRY,我希望我可以使用像 person_* 这样的通配符来选择每个对象

javascript arrays
1个回答
0
投票

您想要循环对象中的值,而不是数组。使用

Object.value()
循环对象的值。

const ogArray = [
  {
    "person_1": "jim",
    "person_2": "bob"
  }
];

const newArray = Object.values(ogArray[0]).map(value => ({person: value}));

console.log(newArray);

© www.soinside.com 2019 - 2024. All rights reserved.