
JavaScript 中的键值对管理是常见操作。Object.fromEntries() 方法,自 ECMAScript 2019 引入,简化了可迭代对象(例如数组或 Map)到普通对象的转换。处理 Map 对象或转换存储键值对的数据结构时,此方法非常实用。
语法与用法:
Object.fromEntries() 方法语法简洁明了:
Object.fromEntries(iterable);
立即学习“Java免费学习笔记(深入)”;
示例:
一个数组的数组(每个数组包含一个键值对)可以这样转换为对象:
const entries = [['姓名', '约翰'], ['年龄', 30], ['城市', '纽约']];
const obj = Object.fromEntries(entries);
console.log(obj);
// 输出:{ 姓名: '约翰', 年龄: 30, 城市: '纽约' }
实际应用:
- Map 转对象: 将 Map 对象转换为普通对象:
const map = new Map([
['名字', '爱丽丝'],
['年龄', 25]
]);
const userObj = Object.fromEntries(map);
console.log(userObj); // { name: 'Alice', 年龄: 25 }
- 过滤键值对: 结合其他数组方法,在转换前过滤或修改键值对:
const data = [
['名字', '爱丽丝'],
['年龄', 25],
['城市', '巴黎']
];
const filteredData = Object.fromEntries(
data.filter(([key, value]) => key !== '年龄')
);
console.log(filteredData); // { name: 'Alice', city: '巴黎' }
性能考量:
Object.fromEntries() 适用于大多数情况,例如将 Map 或键值对数组转换为对象。但处理超大数据集时,性能可能成为瓶颈。建议针对具体需求测试和优化代码。
兼容性和浏览器支持:
以下浏览器和环境支持 Object.fromEntries():
- Chrome 73+
- Firefox 68+
- Safari 12.1+
- Node.js 12+
针对旧版浏览器,考虑使用 polyfill 以确保兼容性。










