Skip to content

Commit 7dbed12

Browse files
committed
Cloning arrays and objects
1 parent 6898a10 commit 7dbed12

File tree

2 files changed

+69
-7
lines changed

2 files changed

+69
-7
lines changed

9_Value_vs_Reference/script.js

Lines changed: 37 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,44 @@
1212

1313
// Cloning Arrays
1414
// 1st way : Spread Operator
15-
const numbers = [1, 2, 3, 4];
16-
const copiedNumbers = numbers;
15+
// const numbers = [1, 2, 3, 4];
16+
// const copiedNumbers = numbers;
1717

1818
// Using spread Opeator,
1919
// Also known as Shallow Cloning
20-
const newNumbers = [...numbers];
20+
// const newNumbers = [...numbers];
2121

22-
numbers.push(5);
23-
console.log(numbers); // [ 1, 2, 3, 4, 5 ]
24-
console.log(copiedNumbers); // [ 1, 2, 3, 4, 5 ]
25-
console.log(newNumbers); // [ 1, 2, 3, 4 ]
22+
// numbers.push(5);
23+
// console.log(numbers); // [ 1, 2, 3, 4, 5 ]
24+
// console.log(copiedNumbers); // [ 1, 2, 3, 4, 5 ]
25+
// console.log(newNumbers); // [ 1, 2, 3, 4 ]
26+
27+
// 2nd way : Array.slice()
28+
// const numbers = [1, 2, 3, 4];
29+
// const copiedNumbers = numbers;
30+
31+
// Using spread Opeator,
32+
// Also known as Shallow Cloning
33+
// const newNumbers = numbers.slice();
34+
35+
// numbers.push(5);
36+
// console.log(numbers); // [ 1, 2, 3, 4, 5 ]
37+
// console.log(copiedNumbers); // [ 1, 2, 3, 4, 5 ]
38+
// console.log(newNumbers); // [ 1, 2, 3, 4 ]
39+
40+
// Cloning Objects
41+
// 1st way : Spread Operator
42+
// const person = { name: "John", age: 22 };
43+
// const newPerson = { ...person };
44+
45+
// person.age = 23;
46+
// console.log(person); // { name: 'John', age: 23 }
47+
// console.log(newPerson); // { name: 'John', age: 22 }
48+
49+
// 2nd way : Object.assign()
50+
const person = { name: "John", age: 22 };
51+
const newPerson = Object.assign({},person);
52+
53+
person.age = 23;
54+
console.log(person); // { name: 'John', age: 23 }
55+
console.log(newPerson); // { name: 'John', age: 22 }

9_Value_vs_Reference/value_vs_reference.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,37 @@ numbers.push(5);
3232
console.log(numbers); // [ 1, 2, 3, 4, 5 ]
3333
console.log(copiedNumbers); // [ 1, 2, 3, 4, 5 ]
3434
console.log(newNumbers); // [ 1, 2, 3, 4 ]
35+
36+
// 2nd way : Array.slice()
37+
const numbers = [1, 2, 3, 4];
38+
const copiedNumbers = numbers;
39+
40+
// Using spread Opeator,
41+
// Also known as Shallow Cloning
42+
const newNumbers = numbers.slice();
43+
44+
numbers.push(5);
45+
console.log(numbers); // [ 1, 2, 3, 4, 5 ]
46+
console.log(copiedNumbers); // [ 1, 2, 3, 4, 5 ]
47+
console.log(newNumbers); // [ 1, 2, 3, 4 ]
48+
```
49+
50+
```js
51+
// Cloning Objects
52+
// 1st way : Spread Operator
53+
const person = { name: "John", age: 22 };
54+
const newPerson = { ...person };
55+
56+
person.age = 23;
57+
console.log(person); // { name: 'John', age: 23 }
58+
console.log(newPerson); // { name: 'John', age: 22 }
59+
60+
// 2nd way : Object.assign()
61+
const person = { name: "John", age: 22 };
62+
const newPerson = Object.assign({},person);
63+
64+
person.age = 23;
65+
console.log(person); // { name: 'John', age: 23 }
66+
console.log(newPerson); // { name: 'John', age: 22 }
3567
```
3668

0 commit comments

Comments
 (0)