Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 7dbed12

Browse files
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)

AltStyle によって変換されたページ (->オリジナル) /