递归迭代JS对象并创建一个具有类似结构的新对象可以通过以下步骤实现:
以下是一个示例代码:
function recursiveIterate(obj) {
if (typeof obj !== 'object' || obj === null) {
return obj; // 基本数据类型直接返回
}
if (Array.isArray(obj)) {
const newArray = [];
for (let i = 0; i < obj.length; i++) {
newArray.push(recursiveIterate(obj[i])); // 递归调用处理数组元素
}
return newArray;
}
const newObj = {};
for (let key in obj) {
newObj[key] = recursiveIterate(obj[key]); // 递归调用处理对象属性
}
return newObj;
}
// 示例用法
const originalObj = {
name: 'John',
age: 30,
hobbies: ['reading', 'coding'],
address: {
city: 'New York',
country: 'USA'
}
};
const newObj = recursiveIterate(originalObj);
console.log(newObj);
该代码会递归迭代原始对象 originalObj
,并创建一个具有相同结构的新对象 newObj
。新对象中的每个属性值都是原始对象对应属性值的递归处理结果。
领取专属 10元无门槛券
手把手带您无忧上云