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

如何将嵌套对象中的所有键转换为小写?

如何将嵌套对象的所有键转换为小写?

输入示例

let input = {
   "KEY1": "VALUE1",
   "KEY2": {"SUBKEY1": "SUBVALUE2"}
};

期望输出

{
   "key1": "VALUE1",
   "key2": {"subkey1": "SUBVALUE2"}
}

解决方案

可以通过递归函数实现,遍历对象的所有键并转换为小写,同时处理嵌套的子对象(甚至数组内的嵌套对象):

function convertKeysToLower(obj) {
  // 非对象或null直接返回原值
  if (typeof obj !== 'object' || obj === null) {
    return obj;
  }
  // 数组则遍历每个元素递归处理
  if (Array.isArray(obj)) {
    return obj.map(item => convertKeysToLower(item));
  }
  // 处理普通对象
  const lowerCaseObj = {};
  for (const key in obj) {
    if (obj.hasOwnProperty(key)) {
      const lowerKey = key.toLowerCase();
      lowerCaseObj[lowerKey] = convertKeysToLower(obj[key]);
    }
  }
  return lowerCaseObj;
}

// 调用示例
let input = {
   "KEY1": "VALUE1",
   "KEY2": {"SUBKEY1": "SUBVALUE2"}
};

const result = convertKeysToLower(input);
console.log(result);

函数说明

  • 先判断输入是否为有效对象,若不是(比如字符串、数字、null)直接返回原值;
  • 若输入是数组,遍历每个元素并递归处理,确保数组内的嵌套对象也被转换;
  • 若输入是普通对象,遍历其所有自有键,将键转为小写后作为新对象的键,对应的值递归调用函数处理,实现深层嵌套转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 02:45:33