对象 {a:{b:{c:{}}}}}如何转换成a.b.c这种形式
import _ from "lodash";
const origin = { a: { b: { c: {}, d: 2 }, e: "hello" } };
// isPlainObject 代码比较多,懒得自己写,用 Lodash 或者 jQuery 等库提供的工具来判断
// 如果想自己写参照 Lodash 或者 jQuery 的源码
function flatObject(obj) {
return Object.fromEntries(
Object.entries(obj)
.flatMap(([key, value]) => {
if (_.isPlainObject(value) && !_.isEmpty(value)) {
return Object.entries(flatObject(value)).map(([k, v]) => [`${key}.${k}`, v]);
}
return [[key, value]];
})
);
}
console.dir(flatObject(origin));
// {
// "a.b.c": {},
// "a.b.d": 2,
// "a.e": "hello"
// };
13 回答12.7k 阅读
7 回答1.8k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
6 回答775 阅读✓ 已解决
2 回答1.9k 阅读
6 回答1k 阅读
就这样吧,呵呵