-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmakeAPerson.js
72 lines (63 loc) · 2.12 KB
/
makeAPerson.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/**
* https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/make-a-person
* Fill in the object constructor with the following methods below:
*
* getFirstName()
* getLastName()
* getFullName()
* setFirstName(first)
* setLastName(last)
* setFullName(firstAndLast)
* Run the tests to see the expected output for each method. The methods that take an argument must accept only one argument and it has to be a string. These methods must be the only
* available * means of interacting with the object.
*/
var Person = function(firstAndLast) {
const nameArr = firstAndLast.split(' ')
let firstName = nameArr[0] || undefined
let lastName = nameArr[1] || undefined
// Complete the method below and implement the others similarly
this.getFullName = function() {
return `${firstName} ${lastName}`;
};
this.getLastName = function() {
return lastName
}
this.getFirstName = function() {
return firstName
}
this.setFirstName = function(name) {
if (name) {
firstName = name
}
}
this.setLastName = function(name) {
if (name) {
lastName = name
}
}
this.setFullName = function(name) {
if (name) {
const newArr = name.split(' ')
if (newArr[0]) {
firstName = newArr[0]
}
if (newArr[1]) {
lastName = newArr[1]
}
}
}
return `${firstName} ${lastName}`;
};
var bob = new Person('Bob Ross');
Object.keys(bob).length // 6.
bob instanceof Person // true.
bob.firstName // undefined.
bob.lastName // undefined.
bob.getFirstName() // "Bob".
bob.getLastName() // "Ross".
bob.getFullName() // "Bob Ross".
bob.getFullName() // "Haskell Ross" after bob.setFirstName("Haskell").
bob.getFullName() // "Haskell Curry" after bob.setLastName("Curry").
bob.getFullName() // "Haskell Curry" after bob.setFullName("Haskell Curry").
bob.getFirstName() // "Haskell" after bob.setFullName("Haskell Curry").
bob.getLastName() // "Curry" after bob.setFullName("Haskell Curry").