JavaScript如何基于另一对象的值重命名数组内对象的属性
实现方案
我们可以先预处理object1生成「旧键→新键」的映射字典,再遍历数组替换键即可,逻辑简洁性能友好:
// 预处理生成键映射表:{ "Part ID": "Material", "Desc": "Description" } const keyMap = Object.fromEntries( Object.entries(object1).map(([newKey, [oldKey]]) => [oldKey, newKey]) ) // 遍历数组完成键替换 const array2 = array1.map(item => Object.fromEntries( Object.entries(item).map(([oldKey, value]) => [keyMap[oldKey] || oldKey, value]) ) )
说明
- 键映射表仅生成1次,就算数组长度很大也不会重复计算,性能优于遍历每个元素时都去查
object1的写法 - 兜底逻辑
keyMap[oldKey] || oldKey可以兼容object1未定义的旧键,直接保留原键避免出现无效键名 - 全程使用JS内置方法实现,无额外依赖,可读性高
内容的提问来源于stack exchange,提问作者TW3
相关产品推荐
相关产品推荐

