gpt4 book ai didi

javascript - 在 JavaScript 中将数组转换为对象

转载 作者:搜寻专家 更新时间:2023-11-01 00:11:02 25 4
gpt4 key购买 nike

我想使用其中一个属性作为键将数组转换为对象。

例如:

var stations = [ { name: 'A Coruna', ds100: 'OECSC' }, ... ];

我想要stationByDs100:

{ 'OECSC': { name: 'A Coruna', ds100: 'OECSC' }, ... }

目前我是这样做的:

var stationByDs100 = {};
stations.forEach(station => stationByDs100[station.ds100] = station);

我正在寻找一种更好的方法来完成此任务 - 是否可以使用没有显式变量声明的单行代码?

例如在 Java 8 中,这可以通过流和收集器在一行中完成,例如:

Map<String, Station> stationByDs100 = stations.stream()
.collect(toMap(Station::getDs100, identity()));

所以我在想也许在 JS 中有类似的方法。

我正在使用 Node.js,所以可以使用 Node.js 支持的最新 JS/ES 功能。

我浏览了大约十几个现有的答案,但他们大多使用旧的 JS/ES 版本并建议更长的解决方案。

最佳答案

你可以使用 Object.assigncomputed property names .

var stations = [ { name: 'A Coruna', ds100: 'OECSC' }],
object = stations.reduce((o, a) => Object.assign(o, { [a.ds100]: a }), {});

console.log(object);

关于javascript - 在 JavaScript 中将数组转换为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41919699/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com