js-编写-方法使nlet-a=-nttmenu-ntttid-18nttnttchildren-ntttnttttid-19ntttnttntn变成-let-a=-nttid-18nttchildren-ntttnttttid-19ntttnttnt
可以使用以下方法实现:
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 著作权归作者所有。请勿转载和采集!