如何将Object.entries转换后的键值对数组还原为对象?
还原键值对数组为对象的简便方法
当然有超省心的办法!ES2019引入的Object.fromEntries()就是专门干这个的——它正好是Object.entries()的反向操作,能直接把键值对数组转回结构一致的对象。
直接使用Object.fromEntries()
假设你处理后的键值对数组是这样的:
const filteredEntries = [['key1', 'val1'], ['key2', 'val2'], ['key3', 'val3']];
只需要一行代码就能还原:
const restoredObj = Object.fromEntries(filteredEntries);
执行后restoredObj就会变成你想要的原始对象结构:
{ key1: 'val1', key2: 'val2', key3: 'val3' }
兼容旧环境的备选方案
如果你的项目需要兼容不支持ES2019的环境,可以用Array.prototype.reduce()手动实现这个逻辑,代码也很清晰:
const restoredObj = filteredEntries.reduce((accumulator, [key, value]) => { accumulator[key] = value; return accumulator; }, {});
这个方法通过遍历数组,把每个键值对逐个添加到初始空对象里,最终得到目标对象。
内容的提问来源于stack exchange,提问作者jackdaw
相关产品推荐
相关产品推荐

