首页 > 解决方案 > 通过数组映射,为每个元素创建一个键值对,并为每个对赋予一个字母的键

问题描述

我有一个对象数组(我不知道有多少对象,也许 3,也许 10)例如:

const data = [
  {name: 'Jane', age: 25},
  {name:'Luke', age: 55},
  {name:'Martha', age: '16'},
  ...and so on
]

现在我想通过这个数组进行映射并为每个数组创建一个键值对,并且我想使用一个字母(以 c 开头)作为键。预期结果是:

{
  c:{name: 'Jane', age: 25}, 
  d:{name:'Luke', age: 55},
  e:{name:'Martha', age: '16'}
  ...and so on
}

如何做到这一点?

我正在使用 JS 和 React

标签: javascriptarraysobject

解决方案


您可以使用reduceString.fromCharCode轻松实现结果。

ASCIIc码是99

const data = [
  { name: "Jane", age: 25 },
  { name: "Luke", age: 55 },
  { name: "Martha", age: "16" },
];

const result = data.reduce((acc, curr, i) => {
  acc[String.fromCharCode(99 + i)] = curr;
  return acc;
}, {});

console.log(result);


推荐阅读