https://github.com/a7ul/replace-object-content
mutates the source js object and replaces the contents with properties from the passed js object while retaining the source js object reference.
https://github.com/a7ul/replace-object-content
javascript js mutate openlibrary
Last synced: 3 months ago
JSON representation
mutates the source js object and replaces the contents with properties from the passed js object while retaining the source js object reference.
- Host: GitHub
- URL: https://github.com/a7ul/replace-object-content
- Owner: a7ul
- Created: 2017-04-26T18:05:32.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2017-04-26T18:33:32.000Z (about 8 years ago)
- Last Synced: 2025-02-18T17:53:41.468Z (4 months ago)
- Topics: javascript, js, mutate, openlibrary
- Language: JavaScript
- Size: 19.5 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# replace-object-content
The module mutates the contents of an object to match the contents of another object.
The references of the source and the object from which properties are copied remains untouched.
See `Usage` to understand more.
## Installation
`yarn add replace-object-content`
or
`npm install replace-object-content --save`
## Usage
```js
const original = {a:1,b:2,c:3};
const toCopyFromObject = {d:4,e:5,f:6};
const replaceObjectContent = require('replace-object-content');
const afterReplace = replaceObjectContent(original, toCopyFromObject);
console.log('original',original);
// original {d:4,e:5,f:6} ----- notice the contents of the original object has been mutated to match the contents of the toCopyFromObject objectconsole.log('toCopyFromObject',toCopyFromObject);
// toCopyFromObject {d:4,e:5,f:6}console.log('afterReplace',afterReplace);
// afterReplace {d:4,e:5,f:6}```
In short, the references of the `original` and `toCopyFromObject` remain as they were before.
Only the contents of `original` becomes exactly same as contents of `toCopyFromObject````js
// All of the bellow test cases passexpect(original).toEqual(toCopyFrom); // content deep equal
expect(afterReplace).toEqual(toCopyFrom); // content deep equal
expect(afterReplace === original).toEqual(true); //making sure reference is equal
expect(original === toCopyFrom).toEqual(false); //making sure original and toCopyFrom references are not equal
expect(afterReplace === toCopyFrom).toEqual(false); //making sure afterReplace and toCopyFrom references are not equal```