2017-01-19 29 views
1

我有一个这样的对象。如何将嵌套对象更改为数组

var Obj = { 
    obj1 : { 
     val : 1, 
     id : 1 
    } 
    obj2 : { 
     val : 2, 
     id :2 
    } 
    obj3 : { 
     val : 3, 
     id :3 
    } 
} 

我想我obj1和所有子对象转换成一个数组,所以我可以检索该值。我想要数组中的数组,因为我想检索它们,既然它是动态的,我不能使用Obj.obj1因此我想推入数组。

有人可以告诉我如何得到这一点。感谢您的帮助

+0

你尝试过什么?目前还不清楚你想要输出的样子。你想输出只是'[1,2,3]'? – 4castle

回答

2

使用Object.keysArray#map将其转换为数组的方法,但由于对象属性没有任何顺序,因此无法保证顺序。

var Obj = { 
 
    obj1: { 
 
    val: 1, 
 
    id: 1 
 
    }, 
 
    obj2: { 
 
    val: 2, 
 
    id: 2 
 
    }, 
 
    obj3: { 
 
    val: 3, 
 
    id: 3 
 
    } 
 
}; 
 

 
var res = Object.keys(Obj).map(function(k) { 
 
    return Obj[k]; 
 
    }) 
 

 
console.log(res);

+0

Object.values(Obj)'是另一种选择(尽管浏览器支持较低) – 4castle

+0

@ 4castle:没有广泛支持 –

+0

让我试试这个。 – David

相关问题