How to perform spread opration on salesuser array object. need to add ..salesuserstargetAmount:500, in that object
{
"station": [
{
"stationname":"chennai",
"stationtargetAmount":500,
"salesusers":[
{
" salesusersname":"tester",
},
]
},
{
"stationname":"chennai22222",
"stationtargetAmount":500,
"salesusers":[
{
" salesusersname":"tester222222",
},
]
}
]
}
Tried with
let salesusertargetamt = "100"
this.setState({
salesusers: this.state.station.map((items) => {
items.salesusers.map(el => (el.salesusersname !== "" ? { ...el, salesusertargetamt } : el))
});
CodePudding user response:
Curly braces ({
) are tricky here because they both mean block of code and JavaScript object so you need to wrap them with ()
:
let salesusertargetamt = "100";
let obj = {
"station": [
{
"stationname":"chennai",
"stationtargetAmount":500,
"salesusers":[
{
" salesusersname":"tester",
},
]
},
{
"stationname":"chennai22222",
"stationtargetAmount":500,
"salesusers":[
{
" salesusersname":"tester222222",
},
]
}
]
};
let result = obj.station.map(items => ({
...items,
salesusers: items.salesusers.map(user => (user.salesusersname !== "" ? {...user, salesusertargetamt} : user ))
}))
console.log(result);
CodePudding user response:
let salesusertargetamt = "100"
this.setState({
salesusers: this.state.station.map((items) => {
return items.salesusers.map(el => (el.salesusersname !== "" ? { ...el, stationtargetAmount: salesusertargetamt } : el))
});