Immutable Updates and Copying
Array Updates
Immutable array updates use map or spread to build a replacement array.
Array Updates
updates.ts
type Item = {
id: number;
done: boolean;
};
const targetId: number = ;
const items: Item[] = [
{ id: 1, done: false },
{ id: 2, done: false },
{ id: 3, done: false },
];
const nextItems: Item[] = items.map((item) =>
item.id === targetId ? { ...item, done: true } : item
);
console.log(items.map((item) => item.done).join(","));
console.log(nextItems.map((item) => item.done).join(","));
type Item = {
id: number;
done: boolean;
};
const targetId: number = ;
const items: Item[] = [
{ id: 1, done: false },
{ id: 2, done: false },
{ id: 3, done: false },
];
const nextItems: Item[] = items.map((item) =>
item.id === targetId ? { ...item, done: true } : item
);
console.log(items.map((item) => item.done).join(","));
console.log(nextItems.map((item) => item.done).join(","));
type Item = {
id: number;
done: boolean;
};
const targetId: number = ;
const items: Item[] = [
{ id: 1, done: false },
{ id: 2, done: false },
{ id: 3, done: false },
];
const nextItems: Item[] = items.map((item) =>
item.id === targetId ? { ...item, done: true } : item
);
console.log(items.map((item) => item.done).join(","));
console.log(nextItems.map((item) => item.done).join(","));
array map update
`map` can return a changed copy for one item and the original item for everything else.