I wanted to get value
of Object with checked:true
as comma separated string.
var arr = [{
week_days: [
{name: 'Mo', value: 'Monday', checked: true},
{name: 'Tu', value: 'Tuesday', checked: true},
{name: 'We', value: 'Wednesday', checked: true},
{name: 'Th', value: 'Thursday', checked: true},
{name: 'Fr', value: 'Friday', checked: true},
{name: 'Sa', value: 'Saturday', checked: false},
{name: 'Su', value: 'Sunday', checked: false}
],
weekend_days: [
{name: 'Mo', value: 'Monday', checked: false},
{name: 'Tu', value: 'Tuesday', checked: false},
{name: 'We', value: 'Wednesday', checked: false},
{name: 'Th', value: 'Thursday', checked: false},
{name: 'Fr', value: 'Friday', checked: false},
{name: 'Sa', value: 'Saturday', checked: true},
{name: 'Su', value: 'Sunday', checked: true}
]
}];
const newArr = arr;
newArr.map((val)=>{
let w = [];
let we = [];
val.week_days.map((val2)=>{
if(val2.checked == true){
w.push(val2.value);
}
})
val.weekend_days.map((val3)=>{
if(val3.checked == true){
we.push(val3.value);
}
})
val.week_days = w.join();
val.weekend_days = we.join();
})
console.log(arr, newArr);
Expected Output: // Working Fine
newArr = [
{
week_days: "Monday,Tuesday,Wednesday,Thursday,Friday",
weekend_days: "Saturday,Sunday"
}
]
But the Issue is map()
also updates arr
.
arr
should be same as before.
Unexpected Output:
arr = [
{
week_days: "Monday,Tuesday,Wednesday,Thursday,Friday",
weekend_days: "Saturday,Sunday"
}
]