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

如何将含results键的嵌套对象转换为直接数组结构?

嵌套对象中results数组的结构转换方案

你需要将所有层级下testList对象中的results数组直接提取出来,替换原有的testList对象结构。可以通过递归遍历的方式处理嵌套结构,代码实现如下:

实现逻辑

  1. 定义递归函数,接收需要处理的对象/数组
  2. 若处理目标是数组,遍历每个元素,对元素中的testList进行处理
  3. 若元素的testList存在results属性,将testList替换为results数组,再递归处理该数组内的元素
  4. 若testList无results属性,保持原结构不变

代码示例

var testList = {
  results: [
    {
      id: 1,
      testList: {
        results: [
          {
            id: 11,
            testList: {}
          }
        ]
      }
    },
    {
      id: 2,
      testList: {}
    }
  ]
};

function transformStructure(data) {
  // 如果是数组,遍历每个元素处理
  if (Array.isArray(data)) {
    data.forEach(item => {
      if (item.testList) {
        // 存在results则替换为数组
        if (item.testList.results) {
          item.testList = item.testList.results;
          // 递归处理替换后的数组
          transformStructure(item.testList);
        }
      }
    });
    return data;
  } 
  // 如果是包含results的对象,先提取数组再处理
  else if (data.results) {
    const transformed = data.results;
    transformStructure(transformed);
    return transformed;
  }
  return data;
}

// 执行转换
testList = transformStructure(testList);
console.log(testList);

转换后结果

运行上述代码后,testList会变为你期望的结构:

[
  {
    id: 1,
    testList: [
      {
        id: 11,
        testList: {}
      }
    ]
  },
  {
    id: 2,
    testList: {}
  }
];

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 23:30:48