I'd like to know how to change deep copy objects with the currying function.
So I tried many ways to change it and did a question before
However, I couldn't figure it out
this is what I have been trying :
import React from "react";
export default function Test() {
let dataSet = [
{
labels: "One",
datasets: [
{
label: "1-1",
data: "defaultDatas",
backgroundColor: "defaultBackgroundColor",
},
{
label: "1-2",
data: "defaultDatas",
backgroundColor: "defaultBackgroundColor",
},
{
label: "1-3",
data: "defaultDatas",
backgroundColor: "defaultBackgroundColor",
},
],
},
{
labels: "Two",
datasets: [
{
label: "2-1",
data: "TwodefaultDatas",
backgroundColor: "TwodefaultBackgroundColor",
},
{
label: "2-2",
data: "defaultDatas",
backgroundColor: "defaultBackgroundColor",
},
{
label: "2-3",
data: "defaultDatas",
backgroundColor: "defaultBackgroundColor",
},
],
},
{
labels: "Three",
datasets: [
{
label: "3-1",
data: "ThreedefaultDatas",
backgroundColor: "ThreedefaultBackgroundColor",
},
{
label: "3-2",
data: "defaultDatas",
backgroundColor: "defaultBackgroundColor",
},
{
label: "3-3",
data: "defaultDatas",
backgroundColor: "defaultBackgroundColor",
},
],
},
];
const changeSecondLabel = (index) => (inx) => (value) => {
dataSet = dataSet.map((data, i) =>
i === index
? {
...data,
datasets: data.datasets.map((set) => {
return { ...set, label: value };
}),
}
: data
);
};
changeSecondLabel(0)(1)("value");
return (
<div>
<h1>{JSON.stringify(dataSet[0].datasets[0].label)}</h1>
<h1>{JSON.stringify(dataSet[0].datasets[1].label)}</h1>
<h1>{JSON.stringify(dataSet[0].datasets[2].label)}</h1>
<br />
<h1>{JSON.stringify(dataSet[1].datasets[0].label)}</h1>
<h1>{JSON.stringify(dataSet[1].datasets[1].label)}</h1>
<h1>{JSON.stringify(dataSet[1].datasets[2].label)}</h1>
<br />
<h1>{JSON.stringify(dataSet[2].datasets[0].label)}</h1>
<h1>{JSON.stringify(dataSet[2].datasets[1].label)}</h1>
<h1>{JSON.stringify(dataSet[2].datasets[2].label)}</h1>
</div>
);
}
I want to change each label with a currying function like this :
dataSet[0].datasets[0].label =value
dataSet[0].datasets[1].label =value
dataSet[1].datasets[0].label =value
dataSet[1].datasets[1].label = value
dataSet[2].datasets[1].label = value
dataSet[2].datasets[2].label =value
with index :
dataSet[index].datasets[idx].label =value
dataSet[index].datasets[idx].label =value
with currying :
curryingfunction(index)(idx)(value) ;
But I don't know how to use spread operator with it
and I want to know the easy way to understand deep copy.
Thank you in advance!