object.fromentries 将键值对列表(如二维数组、map、urlsearchparams)转换为对象,是 object.entries 的反向操作;要求输入可迭代且每项为二元数组,支持过滤、映射等处理,现代环境原生支持,旧环境需 polyfill 或 reduce 模拟。

Object.fromEntries 用于把键值对列表(如数组或可迭代对象)转成普通对象,是 Object.entries 的反向操作。
基本用法:从二维数组还原对象
输入必须是可迭代的、每个元素为长度为 2 的数组([key, value]),否则会报错。
- 支持普通数组:
Object.fromEntries([["a", 1], ["b", 2]])→{a: 1, b: 2} - 支持 Map:
Object.fromEntries(new Map([["x", "hello"], ["y", "world"]]))→{x: "hello", y: "world"} - 不支持单个字符串或数字项,比如
[["a", 1], "bad"]会因解构失败而报错
常见还原场景
适合处理经过转换或过滤后的键值对数据。
Java JDK 25 来自 OpenJDK 官方归档,版本为 JDK 25,本条下载地址已指向官方 Windows x64 zip 安装包直链,适合调试旧项目或兼容旧版 Java 运行环境。
- 过滤后重建对象:先用
Object.entries(obj)转数组,再用.filter()筛选,最后Object.fromEntries()还原 - 修改键名或值后再还原:对 entries 数组
.map()处理,例如把所有键转大写:Object.fromEntries(Object.entries(obj).map(([k, v]) => [k.toUpperCase(), v])) - 从 URLSearchParams 还原配置:
Object.fromEntries(new URLSearchParams("theme=dark&lang=zh"))→{theme: "dark", lang: "zh"}
注意点和兼容性
该方法在现代浏览器和 Node.js 12+ 中原生支持,旧环境需 polyfill 或用 reduce 模拟。
- 键会被自动转为字符串(
Symbol和对象作键时会调用toString(),通常不推荐) - 重复的键会以后面出现的为准,例如
[["a", 1], ["a", 2]]→{a: 2} - 不能直接处理嵌套结构,若 entries 里 value 是对象,它会被原样保留,不会递归还原
替代写法(兼容低版本)
如果需要支持老环境,可用 reduce 手动构造:
entries.reduce((acc, [k, v]) => ({ ...acc, [k]: v }), {})
但要注意性能(每次展开生成新对象),大量数据建议用循环赋值。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!










