我将使用forOwn
遍历一个对象的属性并手动创建一个数组,我不禁想到已经有一个oneliner可以做这件事了。
{
prop1 : "value",
prop2: { sub:1}
}
至:
[
{key: "prop1", value: "value"},
{key: "prop2", value: {sub:1}}
]
谢谢
发布于 2015-08-20 04:21:12
您可以在shorthand property names中使用lodash的_.map()
const obj = {
prop1 : "value",
prop2: { sub:1}
};
const result = _.map(obj, (value, prop) => ({ prop, value }));
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.2/lodash.min.js"></script>
或者,您可以将Object#entries
与Array.map()
和array destructuring结合使用
const obj = {
prop1 : "value",
prop2: { sub:1}
};
const result = Object.entries(obj).map(([prop, value]) => ({ prop, value }));
console.log(result);
发布于 2015-08-20 00:14:07
你甚至不需要lodash来做这个:
var arr = Object.keys(obj).map(function(key){
return { key: key, value: obj[key] };
});
发布于 2016-06-02 23:04:51
一点ES6:
_.map( obj, (value, key) => ({key,value}) )
https://stackoverflow.com/questions/32100692
复制相似问题