If you want to update a piece of an object while creating a new object, then the spread syntax is the way to go.
When you see ...
, you should just think of flattening the object.
When you see this:
const metadata = { first: "Matt", last: "Crowder" }; const updatedMetadata = { ...metadata, last: "Jenkins" };
You should just see updatedMetadata
as such:
const updatedMetadata = { first: "Matt", last: "Crowder", last: "Jenkins" };
Key/value assignments are read from top to bottom, so the last key's value will take priority in setting the value.
And now updatedMetadata
will have the value of:
{ first: "Matt", last: "Jenkins" }
So the spread flattens out the object wherever you place it, so if we had placed the spread metadata after last: "Jenkins"
, then we would get no updates!
const metadata = { first: "Matt", last: "Crowder" }; const updatedMetadata = { last: "Jenkins", ...metadata }; // results in const updatedMetadata = { last: "Jenkins", first: "Matt", last: "Crowder" }; // which gives us nothing
So be careful where you place your spread syntax!
Top comments (1)
Nice, i know understand