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
    我自己
  • 此外,我觉得我不应该为这个本机功能创建实用程序函数

    注意:搜索js array to map、js convert array to map、或js map from array的查询都是使用
    对象
    的石器时代答案或具有实用功能的解决方案。我在这里寻找本地方法

    例如,我正在寻找与将数组映射到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映射。检查是否支持浏览器。它已经在中使用,通常与一起使用。