javascript - Using template literal for dynamic property in ReactJS -
my failed attempt:
temp.map((obj,i) => ({ obj[`person${++i}`] = obj.person.name }) i want produce this
[{id:324, person1:'mike'},{id:23, person2:'jane'}] but i'm stuck on making property dynamic concatenation using template literal string.
issue code is, directly returning data using
() => ({....})
and there using obj[...] not valid key.
map return new array store result in new variable, if want modify same array better use foreach.
check snippet:
let arr = [{id: 10, name: 'a'}, {id: 20, name: 'b'}]; let newarr = arr.map((el,i) => ({ id: el.id, [`name${i+1}`]: el.name })); console.log('new array', newarr); modifying same data using foreach:
let arr = [{id: 10, name: 'a'}, {id: 20, name: 'b'}]; arr.foreach((el,i) => { el[`person${i+1}`] = el.name; }) console.log('modified array', arr);
Comments
Post a Comment