Javascript 使用指定的对象键从对象数组快速创建对象贴图
我有一个统一对象数组:Javascript 使用指定的对象键从对象数组快速创建对象贴图,javascript,ecmascript-6,Javascript,Ecmascript 6,我有一个统一对象数组: var objects = [{ id: 1, name: "one" }, { id: 2, name: "two" }]; 我使用每个对象的id属性作为贴图键,将它们转换为贴图: var map = new Map(); objects.forEach(obj => map.set(obj.id, obj)); 但是,我希望在不进行以下操作的情况下进行转换: 必须自己手动创建一个新的地图对象 必须手动迭代数组并调用set我自
var objects = [{
id: 1,
name: "one"
}, {
id: 2,
name: "two"
}];
我使用每个对象的id
属性作为贴图键,将它们转换为贴图:
var map = new Map();
objects.forEach(obj => map.set(obj.id, obj));
但是,我希望在不进行以下操作的情况下进行转换:
set
我自己对象
的石器时代答案或具有实用功能的解决方案。我在这里寻找本地方法
例如,我正在寻找与将数组映射到C#中的字典相当的本地JavaScript
var map = list.ToDictionary(item => item.id);
这是如此简单和方便,但有趣的是,JavaScript中没有Map.from
(即使有Array.from
)。我在写这个问题时做了研究,我觉得我应该把解决方案留在这里,因为它可能有很多实际应用
我正在寻找在C语言中将数组映射到字典的本地JavaScript等价物# 考虑到
Map
可以使用一组2元素数组,其中每个内部数组的第一个元素用作键,第二个元素用作值,我认为这是本地JS等价物,也是最短的:
new Map(objects.map(obj => [obj.id, obj]));
如果目标浏览器不受支持,请确保使用polyfill映射。检查是否支持浏览器。它已经在中使用,通常与一起使用。