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

JavaScript如何根据键名映射修改数组对象且不修改原数组?

首先你给出的engToGerman存在语法错误,按照映射需求它应为对象而非数组,修正后的定义如下:

const engToGerman = { 
  firstName: 'name',
  lastName: 'vorname'
}

实现方案(完全不修改原始数据)

你可以使用数组map方法遍历原用户数组,每次遍历生成全新的对象,全程不会改动原数组和原数组内的对象:

const newUserDetails = userDetails.map(user => {
  const transformedUser = {}
  // 遍历映射规则,只保留需要的字段并重命名
  for (const [englishKey, germanKey] of Object.entries(engToGerman)) {
    transformedUser[germanKey] = user[englishKey]
  }
  return transformedUser
})

该方案的优势是扩展性强,后续如果需要新增翻译的字段,只需要更新engToGerman对象的映射规则即可,不需要修改遍历逻辑。

如果你的映射规则固定不会频繁修改,也可以用解构赋值写更简洁的版本:

const newUserDetails = userDetails.map(({ firstName, lastName }) => ({
  name: firstName,
  vorname: lastName
}))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 21:54:07