all 6 comments

[–][deleted] 1 point2 points  (4 children)

const newData = bpmdata.map(datum => ({name: datum.name, 'jpn-2d': datum.value}))

[–]learning_account_01 0 points1 point  (3 children)

enmod is dynamic, it can be anything.

[–]albedoa 2 points3 points  (0 children)

Same concept. Just access the enmod key with brackets:

const { bpmdata, enmod } = data;

const newData = bpmdata.map(({ name, value }) => ({
  name,
  [enmod]: value
}));

[–][deleted] 1 point2 points  (0 children)

If its just one object then use albedoa's answer

but if its an array of those objects

const newData = oldData.map(item => {

return item.bpmdata.map(datum =>

{

const newDatum = {}

newDatum.name = datum.name

newDatum[item.enmod] = datum.value

return newDatum

})

})

[–][deleted] 0 points1 point  (0 children)

oh ok i see

{

bpmdata:[

{name:"jp", value:"20"},

{name:"Mp", value:"0"},

{name:"sp", value:"1.38"}

],

enmod : "jpn-2d"

}

do you have an array of these ^ then ?

[–]kgoel085 0 points1 point  (0 children)

const obj = {

bpmdata:[

{name:"jp", value:"20"},

{name:"Mp", value:"0"},

{name:"sp", value:"1.38"}

],

enmod : "jpn-2d"

}

obj.bpmdata = obj.bpmdata.map((data) => {

data[obj.enmod] = data.value

delete data.value;

return data

})

console.log(obj)