Sae*_*oja 0 javascript arrays object
这是我上次采访中的一个问题,我正在尝试解决这个问题:在这种情况下,我想捕获嵌套对象中的值并将它们记录到控制台中。
const obj1 = {
foo: 1,
bar: {
foo1: 2,
bar1: {
foo2: {
foo3: 3,
bar2: 4
},
bar3: 5
}
}
};
// output: [1,2,3,4,5] //
Run Code Online (Sandbox Code Playgroud)
实际上,我的意思是以专业的方式。不是用这种方式:
[obj1.foo, obj1.bar.foo1, obj1.bar.bar1.foo2.foo3, obj1.bar.bar1.foo2.bar2, obj1.bar.bar1.bar3]
Run Code Online (Sandbox Code Playgroud)
小智 6
你可以做这样的事情
const obj1 = {
foo: 1,
bar: {
foo1: 2,
bar1: {
foo2: {
foo3: 3,
bar2: 4
},
bar3: 5
}
}
};
const getValues = (data, values= []) => {
if(typeof data !== 'object'){
return [...values, data]
}
return Object.values(data).flatMap(v => getValues(v, values))
}
console.log(getValues(obj1))Run Code Online (Sandbox Code Playgroud)