Can I update an array of objects by modifiying a value return by array.find()?

I want to modify an object in an array by calling array.find() and then mutate the returned reference to indirectly mutate the array but that doesnt appear to work. I assumed from reading other articles that array.find() returns a reference to an object in the array on a successful match but that appears not the be the case.

In this codesandbox if I mutate the result from array.find() the array is not updated. I can update the array if I replace array.find() with array.findIndex() and modify the array elements by index, but the code is not as clean and I still dont understand why I cant update by reference.

Does array.find() return a reference to an object in the array or a copy? In the codesandbox provided it appears to behave as though its a copy.

Any advice is appreciated.