可以使用以下方法实现:

let a = {
  "menu": {
    "id": 18,
  },
  "children": [
    {
      "id": 19,
    }
  ]
};

const transform = (obj) => {
  let newObj = {};

  for (let key in obj) {
    if (typeof obj[key] === "object" && !Array.isArray(obj[key])) {
      newObj = { ...newObj, ...transform(obj[key]) };
    } else if (key === "id") {
      newObj[key] = obj[key];
    } else {
      newObj[key] = obj[key];
    }
  }

  return newObj;
};

a = transform(a);

console.log(a);
// Output: { id: 18, children: [ { id: 19 } ] }

这里定义了一个 transform 函数,使用递归的方式遍历对象中的所有属性,如果属性的值是一个对象,就再次调用 transform 函数进行处理,并将处理后的结果合并到新的对象中。如果属性的键是 id,就将它的值直接赋值给新对象的 id 属性中。最终返回处理后的对象。


原文地址: https://www.cveoy.top/t/topic/qJ8 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录