ecmascript 6 - Reduce javascript object -
i have javascript object :
{ { long_name: "10", types: [ 0: "street_number" ], }, { long_name: "street", types: [ 0: "route" ], }, { long_name: "paris", types: [ 0: "locality" ], }, ... }
and want flatten , have :
{ street_number: "10", route: "street", locality: "paris", ... }
i using es6, can't manage flatten much, i've succeeded having :
{ {street_number: "10"}, {route: "street"}, {locality: "paris"}, ... }
here tried :
const flattenedobject = originalobject.map(flatten); ... function flatten(element) { let obj = {}; obj[element.types[0]] = element.long_name; return obj; }
thanks help.
you use array#reduce
computed property , first element array.
the key feature object.assign
adding properties result object.
the
object.assign()
method used copy values of enumerable own properties 1 or more source objects target object. return target object.
var data = [{ long_name: "10", types: ["street_number"], }, { long_name: "street", types: ["route"], }, { long_name: "paris", types: ["locality"], }], object = data.reduce((r, a) => object.assign(r, { [a.types[0]]: a.long_name }), {}); console.log(object);
Comments
Post a Comment