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

JavaScript实现数组内所有对象属性值转为小写

JavaScript实现对象数组属性值全转小写

你可以通过遍历数组中的每个对象,再遍历对象的所有属性,将字符串类型的属性值转换为小写来实现需求。以下是两种可行的实现方式:

方式一:ES6+ 简洁写法

利用Array.map、Object.entries和Object.fromEntries实现,代码更简洁:

const array_pairs = [
  { "name": "Master", "contract": "asxcxcx", "deployer": "BCCCCCC" },
  { "name": "Master2", "contract": "bcxcssDA", "deployer": "ttttttttTTtttttt" }
];

const convertToLowerCase = arr => {
  return arr.map(obj => 
    Object.fromEntries(
      Object.entries(obj).map(([key, value]) => [
        key,
        typeof value === 'string' ? value.toLowerCase() : value
      ])
    )
  );
};

// 得到转换后的新数组
const lowerCasedArray = convertToLowerCase(array_pairs);
console.log(lowerCasedArray);

代码说明:

  • Array.map:遍历原数组,返回一个新数组,不会修改原数据
  • Object.entries(obj):将对象转换为键值对数组(如[['name', 'Master'], ...])
  • Object.fromEntries:将处理后的键值对数组重新转换为对象
  • 类型判断typeof value === 'string':确保只有字符串类型的值才执行小写转换,避免非字符串类型(如数字、布尔值)出现错误

方式二:兼容旧环境写法

如果需要兼容ES6之前的JavaScript环境,可以使用传统的循环写法:

const array_pairs = [
  { "name": "Master", "contract": "asxcxcx", "deployer": "BCCCCCC" },
  { "name": "Master2", "contract": "bcxcssDA", "deployer": "ttttttttTTtttttt" }
];

const convertToLowerCase = arr => {
  const result = [];
  for (let i = 0; i < arr.length; i++) {
    const currentObj = arr[i];
    const lowerObj = {};
    for (const key in currentObj) {
      // 确保只处理对象自身的属性(排除原型链上的属性)
      if (currentObj.hasOwnProperty(key)) {
        const value = currentObj[key];
        lowerObj[key] = typeof value === 'string' ? value.toLowerCase() : value;
      }
    }
    result.push(lowerObj);
  }
  return result;
};

const lowerCasedArray = convertToLowerCase(array_pairs);
console.log(lowerCasedArray);

代码说明:

  • 外层循环遍历数组中的每个对象
  • 内层循环遍历对象的每个属性,通过hasOwnProperty确保只处理对象自身的属性
  • 同样加入字符串类型判断,保证转换的安全性

两种方式最终都会得到你期望的结果,你可以根据项目的环境需求选择合适的写法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 18:25:27