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

如何将字符串数组转换为自定义规则的嵌套对象

字符串数组转嵌套查询对象实现方案

实现思路

  • 从数组最后一个元素倒序遍历,逐层向外嵌套生成and结构
  • 每一层的结构固定为{ tags: { contains: 当前元素 }, and: 内层嵌套结果 }
  • 时间复杂度为O(n),空间复杂度为O(n),属于最优实现

代码实现

function transformKeys(keys) {
  // 空数组可根据需求自定义兜底逻辑,这里默认输入数组长度≥1
  if (!keys.length) return {};
  // 先初始化最内层结构
  let result = {
    tags: {
      contains: keys[keys.length - 1]
    }
  };
  // 从倒数第二个元素开始倒序嵌套
  for (let i = keys.length - 2; i >= 0; i--) {
    result = {
      tags: {
        contains: keys[i]
      },
      and: result
    };
  }
  // 包裹最外层固定的and字段
  return { and: result };
}

测试验证

单元素数组测试

输入:
const keys = ["A"];
输出:

{
    "and": {
        "tags": {
            "contains": "A"
        }
    }
}

双元素数组测试

输入:
const keys = ["A","B"];
输出:

{
    "and": {
        "tags": {
            "contains": "A"
        },
        "and": {
            "tags": {
                "contains": "B"
            }
        }
    }
}

多元素数组扩展验证

输入const keys = ["A","B","C"]会自动生成三层嵌套结构,完全符合规则要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 11:57:01