Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
development:javascript [2020/02/27 12:38] kalenpw [Mutating Data] |
— (current) | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== JavaScript ====== | ||
| - | ** Install nodejs ** | ||
| - | <code bash> | ||
| - | sudo n stable | ||
| - | </ | ||
| - | |||
| - | ===== Mutating Data ===== | ||
| - | <code javascript> | ||
| - | const one = [0, 1, 2]; | ||
| - | const two = one; | ||
| - | two.push(3); | ||
| - | |||
| - | console.log(one); | ||
| - | console.log(two); | ||
| - | </ | ||
| - | output: | ||
| - | <code javascript> | ||
| - | [ 0, 1, 2, 3 ] | ||
| - | [ 0, 1, 2, 3 ] | ||
| - | </ | ||
| - | Note: slice works on arrays of primitives not objects | ||
| - | |||
| - | <code javascript> | ||
| - | const one = [0, 1, 2]; | ||
| - | const two = one.slice(); | ||
| - | two.push(3); | ||
| - | |||
| - | console.log(one); | ||
| - | console.log(two); | ||
| - | </ | ||
| - | |||
| - | output: | ||
| - | <code javascript> | ||
| - | [ 0, 1, 2 ] | ||
| - | [ 0, 1, 2, 3 ] | ||
| - | </ | ||
| - | |||
| - | But objects will still refer to the original arrays even with slice | ||
| - | <code javascript> | ||
| - | const one = [ | ||
| - | { | ||
| - | name: ' | ||
| - | age: 23 | ||
| - | }, | ||
| - | { | ||
| - | name: ' | ||
| - | age: ' | ||
| - | } | ||
| - | ]; | ||
| - | |||
| - | const two = one.slice(); | ||
| - | two[0].name = ' | ||
| - | |||
| - | console.log(one); | ||
| - | console.log(two); | ||
| - | </ | ||
| - | output: | ||
| - | <code javascript> | ||
| - | [ { name: ' | ||
| - | [ { name: ' | ||
| - | </ | ||