javascript - 如何将嵌套对象转换为数组
问题描述
我正在尝试将嵌套对象转换为数组
下面是我正在尝试的示例 const object1 = { a: 'somestring', b: 42, c: { d : "y" } };
我希望我的结果是 [a,b,cd](需要的键不是 vlaues)
解决方案
如果您想将最远的值放入对象中,那么就像:
function walkRecursive(walkable, walkFunc){
if(typeof walkable === 'object'){
let v;
if(walkable instanceof Array){
for(let i=0,l=walkable.length; i<l; i++){
v = walkable[i];
if(typeof v === 'object'){
walkRecursive(v, walkFunc);
}
else{
walkFunc(v, i, walkable);
}
}
}
else{
for(let i in walkable){
v = walkable[i];
if(typeof v === 'object'){
walkRecursive(v, walkFunc);
}
else{
walkFunc(v, i, walkable);
}
}
}
}
return
}
const a = [];
walkRecursive({a:'somestring', b:42, c:{d:'y'}}, (v, i, o)=>{
console.log('object: '+o);
console.log('property: '+i);
console.log('value: '+v);
console.log('+++++++++++++++++++++++++++++++++++++++++++');
a.push(v);
});
console.log('-------------------------------------------');
console.log(a);