// I have the following response :
[
{
"userId": 1,
"id": 3,
"title": "fugiat veniam minus",
"company": {
"name": "Deckow-Crist",
"catchPhrase": "Proactive didactic contingency",
"bs": "synergize scalable supply-chains"
}
},
{
"userId": 2,
"id": 4,
"title": "fugiat veniam minus",
"company": {
"name": "Deckow-Crist",
"catchPhrase": "Proactive didactic contingency",
"bs": "synergize scalable supply-chains"
}
},
]
//and I want to add this key-value pair in 2 places (“completed”: false) to make it look like the following response:
[
{
"userId": 1,
"id": 3,
"title": "fugiat veniam minus",
**"completed": false**
"company": {
"name": "Deckow-Crist",
"catchPhrase": "Proactive didactic contingency",
"bs": "synergize scalable supply-chains"
**"completed": false**
}
},
{
"userId": 2,
"id": 4,
"title": "fugiat veniam minus",
**"completed": false**
"company": {
"name": "Deckow-Crist",
"catchPhrase": "Proactive didactic contingency",
"bs": "synergize scalable supply-chains"
**"completed": false**
}
},
]
………………………………………………………………………………………………………..
Advertisement
Answer
Array.map can solve your problem.
const result = input.map(x => {
x.completed = false;
x.company = x.company.map(c => ({ ...c, completed: false }))
return x;
})
You can check the completed demo:
const input = [{
"userId": 1,
"id": 3,
"title": "fugiat veniam minus",
"company": [{
"name": "Deckow-Crist",
"catchPhrase": "Proactive didactic contingency",
"bs": "synergize scalable supply-chains"
}, {
"name": "Deckow-Crist",
"catchPhrase": "Proactive didactic contingency",
"bs": "synergize scalable supply-chains"
}]
},
{
"userId": 2,
"id": 4,
"title": "fugiat veniam minus",
"company": [{
"name": "Deckow-Crist",
"catchPhrase": "Proactive didactic contingency",
"bs": "synergize scalable supply-chains"
}, {
"name": "Deckow-Crist",
"catchPhrase": "Proactive didactic contingency",
"bs": "synergize scalable supply-chains"
}]
},
];
const result = input.map(x => {
x.completed = false;
x.company = x.company.map(c => ({ ...c, completed: false }))
return x;
})
console.log(result);