You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将对象中的数据合并至已有的Map?

如何将对象中的数据合并至已有的Map?

从对象创建Map可以使用以下代码:

const myMap = new Map(Object.entries(myObject));

要无需使用for循环将对象数据合并至已有的Map,有以下几种简洁方式:

方法一:利用Object.entries() + Array.prototype.forEach()

Object.entries()会将对象的可枚举键值对转换为二维数组,再通过forEach遍历数组,调用Map.prototype.set()完成合并(已有键的值会被覆盖,不存在的键会被新增):

const myObject = {
  test: "blah",
  ok: 123
}

const myMap = new Map(Object.entries(myObject));

const mySecondObject = {
  test: "new value",
  foo: "bar"
}

// 合并逻辑
Object.entries(mySecondObject).forEach(([key, value]) => myMap.set(key, value));

console.log({size: myMap.size, test: myMap.get("test"), myMap});

方法二:处理包含不可枚举属性/Symbol键的场景

如果需要合并对象的不可枚举属性或Symbol类型的键,可以使用Reflect.ownKeys()获取对象所有自有键(包括Symbol),再配合遍历完成合并:

// 示例:包含Symbol键的对象
const symKey = Symbol("uniqueKey");
const mySecondObject = {
  test: "new value",
  foo: "bar",
  [symKey]: "symbolValue"
};

// 合并所有自有键(包括Symbol)
Reflect.ownKeys(mySecondObject).forEach(key => {
  myMap.set(key, mySecondObject[key]);
});

注意:如果只是合并常规的可枚举字符串键,方法一已经足够简洁高效。

内容的提问来源于stack exchange,提问作者vanowm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 21:04:51