I'm about to use forOwn
to iterate through an object's properties and create an array manually and can't helping thinking there's a oneliner already available to do it.
{
prop1 : "value",
prop2: { sub:1}
}
to:
[
{key: "prop1", value: "value"},
{key: "prop2", value: {sub:1}}
]
Thanks
You can use lodash's _.map() with shorthand property names:
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>
Or you can do it using Object#entries
with Array.map()
and array destructuring:
const obj = {
prop1 : "value",
prop2: { sub:1}
};
const result = Object.entries(obj).map(([prop, value]) => ({ prop, value }));
console.log(result);