10 lines
299 B
JavaScript
10 lines
299 B
JavaScript
module.exports = function traverse(o, fn, keys = []) {
|
|
for (const [k, v] of Object.entries(o)) {
|
|
const keysBranch = [...keys]
|
|
keysBranch.push(k)
|
|
fn.apply(this, [k, v, o, keysBranch])
|
|
if (o[k] !== null && typeof o[k] === "object") {
|
|
traverse(o[k], fn, keysBranch)
|
|
}
|
|
}
|
|
}
|