对象扁平化
实现一个方法 flat(obj) 将下面对象做扁平化处理,输出如下
let obj = {
a: {
b: 1,
c: 2,
d: { e: 5 }
},
b: [1, 3, { a: 2, b: 3 }],
c: 3
}
/*
{
a.b: 1
a.c: 2
a.d.e: 5
b.0: 1
b.1: 3
b.2.a: 2
b.2.b: 3
c: 3
}
*/
递归的代码实现
function flat(obj) {
// 你的代码
const back = {};
recursion(obj, null);
function recursion(o, prev) {
for (let key in o) {
if (o[key] instanceof Object) {
if (prev === null) {
recursion(o[key], key);
} else {
recursion(o[key], prev + '.' + key);
};
} else {
if (prev === null) {
back[key] = o[key];
} else {
back[prev + '.' + key] = o[key];
};
};
};
};
console.log(back);
return back;
};
// 最终效果是执行
flat({
a: {
b: 1,
c: 2,
d: { e: 5 }
},
b: [1, 3, { a: 2, b: 3 }],
c: 3
})
分类:
97-01. 算法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!