JavaScript 对象扁平化
Posted 乱舞春秋__
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript 对象扁平化相关的知识,希望对你有一定的参考价值。
javascript对象扁平化
我们平时肯定遇到过多层嵌套的对象,name如何将它扁平化呢?一起来看看吧!
函数封装如下:
function flatten (obj) {
const ans = {}
inner(obj, null)
function inner (o, prev) {
for (let key in o) {
if (o[key] instanceof Object) {
if (prev === null) {
inner(o[key], key)
} else {
inner(o[key], prev + '.' + key)
}
} else {
if (prev === null) {
ans[key] = o[key]
} else {
ans[prev + '.' + key] = o[key]
}
}
}
}
return ans
}
将一个多层嵌套的对象传入,将返回一个扁平化后的对象。
示例:
const obj = {
a: 1,
b: { c: 2, d: 3 },
e: { f: { g: 4 } },
h: { i: { j: 5, k: 6 } }
}
对象obj是一个多层嵌套的对象,将其传入flatten函数,将得一个扁平化的对象:
{ a: 1, b.c: 2, b.d: 3, e.f.g: 4, h.i.j: 5, h.i.k: 6 }
以上即为扁平化一个对象的方法。
以上是关于JavaScript 对象扁平化的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段12——JavaScript的Promise对象