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

如何在JavaScript的map()中转换对象属性键名为小写并重命名?

如何在map()中转换对象键名以匹配目标格式

没问题,我来帮你搞定这个需求!你现在的代码只是原样提取了原对象的键名,要得到你想要的输出格式,只需要在map()的回调函数里,给返回的对象指定新的键名就可以了——完全不用修改全局的watchList变量,也能用上你提到的toLowerCase()(不过针对这个特定场景,直接指定键名更简洁,我两种情况都给你说明)。

最直接的解决方案(针对固定键名)

因为你的目标键名是明确的title和rating,直接在返回的对象字面量里映射对应的值就好,代码如下:

var watchList = [
  { "Title": "Inception", "imdbRating": "8.8" },
  { "Title": "Interstellar", "imdbRating": "8.6" },
  { "Title": "The Dark Knight", "imdbRating": "9.0" },
  { "Title": "Batman Begins", "imdbRating": "8.3" },
  { "Title": "Avatar", "imdbRating": "7.9" }
];

var ratings = watchList.map( ({Title, imdbRating}) => ({
  title: Title, // 用目标键名title对应原Title的值
  rating: imdbRating // 用目标键名rating对应原imdbRating的值
}));

console.log(JSON.stringify(ratings));

运行这段代码后,输出就完全符合你的目标格式了:
[{"title":"Inception","rating":"8.8"},{"title":"Interstellar","rating":"8.6"},{"title":"The Dark Knight","rating":"9.0"},{"title":"Batman Begins","rating":"8.3"},{"title":"Avatar","rating":"7.9"}]

如果想用toLowerCase()处理键名(通用场景)

如果以后遇到需要把原键名统一转小写的场景(比如原键名是Title转成title),可以用循环遍历键名的方式,不过因为你的需求里imdbRating要转成rating(不是单纯的imdbrating),所以需要额外处理一下:

var ratings = watchList.map(item => {
  const newItem = {};
  // 遍历原对象的键名,转小写后赋值
  for (const key in item) {
    newItem[key.toLowerCase()] = item[key];
  }
  // 把imdbrating改成rating,然后删除原键
  newItem.rating = newItem.imdbrating;
  delete newItem.imdbrating;
  return newItem;
});

不过显然第一种方法更适合你当前的需求,代码更简洁易读,也完全满足要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 14:08:10