0

I have two arrays tasks and updatedTasks. When the first api call is made, one of the properties is updated. When I make a copy of tasks array and make a second API to update other property, it adds sadditional properties to updatedTasks array. The weird thing is I get the expected result, but both tasks and updatedTasks have same properties.

Code:

const _tasks = []
const _updatedTasks = []
const obj = {
    name: 'task',
  zone: 'zone'
}
const zone = 'abc'
const response = { taskList: [ obj ]};
const response2 = {time: '123'}


response.taskList.map((task)=>{
  task.zone = zone
  const obj = {...task}
  _tasks.push(obj)
})
console.log(_tasks)


const copy = [..._tasks]

copy.map((task)=>{
  const resp = response2
  task.time = resp.time
  _updatedTasks.push(task)
})
console.log(_updatedTasks)

How can I make sure, tasks just updates zone and updateTasks updates both zone and time?

Fiddle Link: https://playcode.io/944175

CertainPerformance
  • 356,069
  • 52
  • 309
  • 320
parthc
  • 65
  • 6

0 Answers0