Как сделать чтобы входные данные учитывались в объекте и в определенный момент выводились в функции через return?
Нужно создать телефонную книга с командами:'ADD','REMOVE_PHONE','SHOW', которые добавляют контакт с номером(например 'ADD Ivan 5352905'), удаляют номер и показывают всю книгу соответственно. Все функции в принципе работают корректно, но проблема с вводом подобного типа: 'ADD Ivan 85252; REMOVE_PHONE 85252', где несколько команд идут через точку с запятой и их надо поочередной применить к книге и вывести последнюю введенную команду. Так как же сохранить все эти несколько действий и показать конечный, если не использовать для всех return?
var phoneBook = {};
function abc (commandSTR) {
//------------------------------СЛУЧАИ----------------------------------//
if (commandSTR.indexOf(';') !== -1) {
console.log('Мы внутри!');
let textFull = commandSTR.split('; ');
console.log(textFull);
console.log(textFull.length);
for (let s=0; s<textFull.length; s++) {
let textAlone = textFull[s];
console.log(textAlone);
let command = textAlone.split(' ');
console.log(command);
if (s = textFull.length-1) {
switch(command[0]){
case 'ADD':
return(add(command));
case 'REMOVE_PHONE':
return(remove(command));
case 'SHOW':
return(show());
}
} else {
switch(command[0]){
case 'ADD':
add(command);
case 'REMOVE_PHONE':
remove(command);
case 'SHOW':
show();
}
}
}
} else {
let command = commandSTR.split(' ');
switch(command[0]){
case 'ADD':
return(add(command));
case 'REMOVE_PHONE':
return(remove(command));
case 'SHOW':
return(show());
}
}
}
//----------------------------------------------------------------------------//
//-------------------------------------ADD------------------------------------//
add = function (nameNumber) {
if(nameNumber[2].indexOf(',') != -1) {
let number = nameNumber[2].split(',');
for (i = 0; i < number.length; i++){
nameNumber[2+i] = number[i];
}
}
if(phoneBook.hasOwnProperty(nameNumber[1])) {
for(var i = 2; i < nameNumber.length; i++){
if(phoneBook[nameNumber[1]].indexOf(nameNumber[i]) === -1){
phoneBook[nameNumber[1]] += ', ' + nameNumber[i];
}
} }
else {
phoneBook[nameNumber[1]] = nameNumber[2];
for(var i = 3; i < nameNumber.length; i++){
phoneBook[nameNumber[1]] += ', ' + nameNumber[i];
}
}
return phoneBook;
}
//----------------------------------------------------------------------------//
//------------------------------REMOVE_PHONE----------------------------------//
remove = function (numbers) {
for (var i in phoneBook) {
if (phoneBook[i].indexOf(numbers[1]) != -1){
if(phoneBook[i].length === 9) {
return(delete phoneBook[i]);
}
else {
let number = phoneBook[i].split(', ');
k = number.indexOf(numbers[1]);
number.splice(k,1);
phoneBook[i] = number[0];
for (var j = 1; j < number.length; j++){
phoneBook[i] += ', ' + number[j]
}
return true;
}
}
}
return false;
}
//----------------------------------------------------------------------------//
//-------------------------------------SHOW-----------------------------------//
show = function () {
inp = [];
count = 0;
for (var i in phoneBook) {
inp[count] = i + ': ' + phoneBook[i];
count++;
}
return inp.sort()
}
//----------------------------------------------------------------------------//