Reputation: 597
I have configuration object for my features:
const features = {
"feature1": {
"value": 1,
"description": ""
},
"feature2": {
"value": 2,
"description": ""
}
}
How to transform it to feature/value format like
{"feature1": 1, "feature2": 2}
My variant is below, but I feel it's not elegant
let config = {};
config = Object.keys(features).map(
k => config[k] = flags[k]["value"]
);
Upvotes: 1
Views: 1179
Reputation: 122087
You can use ES6
spread syntax with Object.assign()
and map()
.
const features = {"feature1":{"value":1,"description":""},"feature2":{"value":2,"description":""}}
var result = Object.assign({}, ...Object.keys(features).map(k => ({[k]: features[k].value})))
console.log(result)
Or you can use Object.keys()
and reduce()
const features = {"feature1":{"value":1,"description":""},"feature2":{"value":2,"description":""}}
var result = Object.keys(features).reduce((r, e) => (r[e] = features[e].value, r), {})
console.log(result)
Upvotes: 1