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

如何使用jQuery将带分隔符的层级字符串转换为多维嵌套对象

实现思路

你现在的写法用map只会返回数组,要生成嵌套对象需要逐层遍历路径片段,每一层判断对应键是否已经存在,不存在就初始化空对象,直到最后一级路径的时候赋值你需要的value即可。

完整实现代码

// 初始化最终的参数对象
var params = {};
// 你可以替换成自己的遍历逻辑,比如$('li').each(function() { 取对应路径 })
var pathList = [
  'grand-parent/parent/child',
  'grand-parent/parent/child2',
  'grand-parent2/parent2/child3'
];

pathList.forEach(function(path) {
  var parentIds = path.split("/");
  // 临时指针用来逐层操作对象,避免直接修改根对象
  var currentLevel = params;
  // 遍历所有路径片段
  for(var i = 0; i < parentIds.length; i++) {
    var key = parentIds[i];
    // 最后一级路径赋值自定义value,可替换为你实际的取值逻辑
    if(i === parentIds.length - 1) {
      currentLevel[key] = '你的自定义value';
    } else {
      // 非最后一级如果当前键不存在就初始化为空对象
      if(!currentLevel[key]) {
        currentLevel[key] = {};
      }
      // 指针移动到下一层
      currentLevel = currentLevel[key];
    }
  }
});

console.log(params); // 输出就是你需要的嵌套对象结构

现有代码问题说明

你之前的写法直接把map返回的数组赋值给了params,自然只能拿到数组结构。替换为上述逐层遍历赋值逻辑即可实现需求,不需要依赖jQuery特殊方法,纯JS就能实现,可以直接嵌入你现有循环逻辑中使用。

内容的提问来源于stack exchange,提问作者J.BizMai

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 20:48:04