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

如何将对象数组中指定键的所有值转换为小写?

解决对象数组指定键值转小写的问题

嘿,我来帮你搞定这个问题~你之前用map的思路方向是对的,但问题出在两个细节上:一是你只返回了Domain的值,没保留整个对象结构;二是toLowerCase后面没加括号,这是引用函数而不是实际调用它执行转换。

下面给你两种靠谱的解法,都能保留原对象的所有属性,只把指定的Domain值转成小写:

方法一:使用展开运算符(ES6+)

这种写法简洁直观,会创建全新的对象,完全不会修改原数组里的对象:

var array = [
  { "Name": "Bill", "Domain": "TEST.com" },
  { "Name": "John", "Domain": "JohnTest.com" },
  { "Name": "Fred", "Domain": "fredtest.com" }
];

var newArray = array.map(function(obj) {
  return {
    ...obj, // 复制原对象的所有属性
    Domain: obj.Domain.toLowerCase() // 覆盖Domain属性为小写后的值
  };
});

方法二:使用Object.assign(兼容旧环境)

如果你的项目需要兼容不支持ES6的环境,用Object.assign来合并对象是更稳妥的选择:

var newArray = array.map(function(obj) {
  return Object.assign({}, obj, {
    Domain: obj.Domain.toLowerCase()
  });
});

这里Object.assign会先创建一个空对象,然后依次把原对象的属性、新的Domain属性合并进去,同样不会改动原数组里的原始对象。

额外提醒:处理可能缺失的键

如果数组里存在没有Domain键的对象,可以加个判断避免报错:

var newArray = array.map(function(obj) {
  return {
    ...obj,
    Domain: obj.Domain ? obj.Domain.toLowerCase() : obj.Domain
  };
});

运行上面的代码后,你就能得到完全符合预期的结果:

// newArray的最终内容
[
  { "Name": "Bill", "Domain": "test.com" },
  { "Name": "John", "Domain": "johntest.com" },
  { "Name": "Fred", "Domain": "fredtest.com" }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:13:32