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

如何将点分隔的字符串批量转换为嵌套map对象

点分隔字符串转嵌套Map实现方案

核心逻辑

  • 初始化空对象作为最终嵌套结构的根节点
  • 逐个处理每个输入字符串:按.拆分得到层级路径数组
  • 临时变量指向当前遍历的层级节点,依次往下创建嵌套对象,路径最后一项对应的属性赋值为null

JavaScript 实现代码

function buildNestedMap(strList) {
  const root = {};
  strList.forEach(item => {
    const pathArr = item.split('.');
    let current = root;
    for (let i = 0; i < pathArr.length; i++) {
      const key = pathArr[i];
      // 最后一级路径赋值为null
      if (i === pathArr.length - 1) {
        current[key] = null;
        break;
      }
      // 不存在对应层级则初始化空对象
      if (!current[key]) current[key] = {};
      // 进入下一层级
      current = current[key];
    }
  });
  return root;
}

// 测试示例
const input = [
  'Fruits.Apple.Red',
  'Fruits.Apple.Green',
  'Fruits.Orange.Yellow',
  'Fruits.Watermelon.Yellow',
  'Fruits.Watermelon.Red'
];
console.log(buildNestedMap(input));

Python 实现代码

def build_nested_map(str_list):
    root = {}
    for item in str_list:
        path_arr = item.split('.')
        current = root
        for index, key in enumerate(path_arr):
            if index == len(path_arr) - 1:
                current[key] = None
                break
            if key not in current:
                current[key] = {}
            current = current[key]
    return root

# 测试示例
input_list = [
    'Fruits.Apple.Red',
    'Fruits.Apple.Green',
    'Fruits.Orange.Yellow',
    'Fruits.Watermelon.Yellow',
    'Fruits.Watermelon.Red'
]
print(build_nested_map(input_list))

以上实现会自动合并相同父级的子节点,最终输出结构完全符合要求,最后一级节点值均为null。

内容的提问来源于stack exchange,提问作者Jun Ming Kui

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 12:15:06