typescript 将列表的元素插入到对象中

xqk2d5yq  于 2023-02-05  发布在  TypeScript
关注(0)|答案(2)|浏览(237)

我列了个单子。像这样;

0: {value: 50, key: 'A'}
1: {value: 10, key: 'B'}
2: {value: 15, key: 'C'}
3: {value: 20, key: 'D'}
4: {value: 25, key: 'E'}

我想把这个列表转换成一个对象。
例如,输出应该如下所示:

let data = [{     
   A: 50, 
   B: 10, 
   C: 15, 
   D: 20, 
   E: 25 
}]

我需要在javascript端处理这个问题,但是因为我不熟悉javascript,我找到的解决方案不起作用,我通常总是这样输出。
[ { A:50 }, { B: 10 }, { C: 15 } { D: 20 }, { E: 25 } ]

vc9ivgsu

vc9ivgsu1#

使用Array#map将数组转换为键值对数组后,可以使用Object.fromEntries

let arr = [{value: 50, key: 'A'},{value: 10, key: 'B'},{value: 15, key: 'C'},{value: 20, key: 'D'},{value: 25, key: 'E'}];
let res = Object.fromEntries(arr.map(x => [x.key, x.value]));
console.log(res);
u0njafvf

u0njafvf2#

可以使用reduce方法将数组转换为对象:

const x = [
  {value: 50, key: 'A'},
  {value: 10, key: 'B'},
  {value: 15, key: 'C'},
  {value: 20, key: 'D'},
  {value: 25, key: 'E'}
]

function convert(arr) {
  return arr.reduce((acc, item) => {
    acc[item.key] = item.value;
    return acc;
  }, {})
}

console.log(convert(x))

相关问题