-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
106 lines (99 loc) · 2.85 KB
/
Copy pathindex.js
File metadata and controls
106 lines (99 loc) · 2.85 KB
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
class PhoneApp {
constructor() {
this.dataBase = [
{id:1, name:'Vasya', phone:'qweqwe'},
{id:6, name:'Vasya', phone:'qweqwe'},
{id:3, name:'Vasya', phone:'qweqwe'},
{id:8, name:'Vasya', phone:'qweqwe'},
{id: 10, name: 'Tom2', phone: '0995385'},
{id: 10, name: 'Anita', phone: '0995305385'},
{id: 12, name: 'Anita', phone: '9995305385'}
]
};
checkForNumbers(phone) {
let arrPhone = phone.split('');
let numberArrPhone = arrPhone.map((elem) => {
return parseInt(elem);
});
let validNumber = numberArrPhone.some((elem) => {
return isNaN(elem)
});
if(validNumber) {
// console.error('Телефонный номер должен содержать только цифры');
return false;
} else {
//console.log('Телефонный номер вылидный');
return true;
};
};
transformNumber(phone) {
if(this.checkForNumbers(phone)){
let arrPhone = phone.split('');
arrPhone.splice(0, 0, '(');
arrPhone.splice(4, 0, ')', ' ');
arrPhone.splice(8, 0, '-');
arrPhone.splice(11, 0, '-');
return arrPhone.join('');
} else {
return 'Телефонный номер должен содержать только цифры';
};
};
addUser(id, name, phone) {
let objUser = {
id,
name
};
if(this.checkForNumbers (phone)) {
objUser.phone = phone;
this.dataBase.push(objUser);
} else {
console.log('Введите коренктный номер')
};
};
removeUserByName(name) {
let indexDelete = this.dataBase.findIndex((elem) => {
return elem.name === name;
});
if(indexDelete === -1) {
console.log('Нет такого пользователя');
} else {
this.dataBase.splice(indexDelete, 1);
};
};
searchByName(value) {
let newArr = [];
this.dataBase.forEach((elem) => {
if(elem.name == value) {
newArr.push(elem)
};
});
newArr.forEach((elem) => {
console.log('Поиск по имени --->', elem);
});
};
changeUserData(initialUser, value) {
let arr = this.dataBase;
arr.forEach((elem) =>{
for(let key in elem) {
if(elem[key] == initialUser) {
elem[key] = value;
};
};
});
};
sortingUsers(value) {
function compare(a, b) {
return a[value] > b[value];
};
let tmp = this.dataBase.sort(compare);
console.log('Сортировка пользователей по заданному свойству --->', tmp);
};
};
let phoneApp = new PhoneApp();
console.log('проверенный и преобразованый номер --->', phoneApp.transformNumber('0995305385'));
console.log('номер не прошедший проверку --->', phoneApp.transformNumber('099530)5385'));
phoneApp.addUser(3, 'Natalia', '0995305300');
phoneApp.removeUserByName('Tom2');
phoneApp.searchByName('Natalia');
phoneApp.changeUserData(3, 5);
phoneApp.sortingUsers('id');