Skip to content

Commit 66192ab

Browse files
committed
[EX-8.6/st-compl] updating-task-list-array
Working with arr/tasks, adding/deleting. Practicing with DRY principle. Worth noting: - all this work (fixation). FS-dev: B-3 / JS basic
1 parent 9b32f0c commit 66192ab

File tree

1 file changed

+95
-0
lines changed
  • full-stack-dev/3-js-basic/8-arrays/8-6-ex-updating-task-list-array

1 file changed

+95
-0
lines changed
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
// Дан список задач:
2+
// const tasks = ['Задача 1'];
3+
// Сделать функции:
4+
// - Добавление задачи в конец.
5+
// - Удаление задачи по названию.
6+
// - Перенос задачи в начало списка по названию.
7+
// Всегда менять исходный массив.
8+
9+
const tasks = ['Задача 1'];
10+
11+
// проверка наличия задачи
12+
function checkTaskPosition(task) {
13+
const taskPosition = tasks.indexOf(task);
14+
15+
if (taskPosition >= 0) {
16+
return { hasTask: true, taskPosition };
17+
} else {
18+
return { hasTask: false, taskPosition };
19+
}
20+
}
21+
22+
// добавление задачи
23+
function addTask(task) {
24+
tasks.push(task);
25+
return `${task} добавлена!`;
26+
}
27+
28+
// удаление задачи
29+
function deleteTask(task) {
30+
const { hasTask, taskPosition } = checkTaskPosition(task);
31+
32+
if (hasTask) {
33+
tasks.splice(taskPosition, 1);
34+
return `${task} удалена!`;
35+
} else {
36+
return `Нет такой задачи!`;
37+
}
38+
}
39+
40+
// перемещение задачи (приоритизация)
41+
function replaceTask(task) {
42+
const { hasTask, taskPosition } = checkTaskPosition(task);
43+
44+
if (hasTask) {
45+
const getTask = String(tasks.splice(taskPosition, 1));
46+
// const [getTask] = tasks.splice(taskPosition, 1);
47+
// const getTask = tasks.splice(taskPosition, 1)[0];
48+
tasks.unshift(getTask);
49+
return `${task} перемещена в начало!`;
50+
} else {
51+
return `Нечего приоритизировать! Нет такой задачи!`;
52+
}
53+
}
54+
55+
console.log(addTask('Задача 2')); // Задача 2 добавлена!
56+
console.log(addTask('Задача 3')); // Задача 3 добавлена!
57+
console.log(addTask('Задача 4')); // Задача 4 добавлена!
58+
console.log(tasks); // [ 'Задача 1', 'Задача 2', 'Задача 3', 'Задача 4' ]
59+
60+
console.log(deleteTask('Задача 4')); // Задача 4 удалена!
61+
console.log(tasks); // [ 'Задача 1', 'Задача 2', 'Задача 3' ]
62+
console.log(deleteTask('Задача 6')); // Нет такой задачи!
63+
64+
console.log(replaceTask('Задача 3')); // Задача 3 перемещена в начало!
65+
console.log(tasks); // [ 'Задача 3', 'Задача 1', 'Задача 2' ]
66+
console.log(replaceTask('Задача 9')); // Нечего приоритизировать! Нет такой задачи!
67+
68+
// ?? изначально были такие решения (без DRY)
69+
// function addTask(task) {
70+
// tasks.push(task);
71+
// return `${task} добавлена!`;
72+
// }
73+
//
74+
// function deleteTask(task) {
75+
// const taskPosition = tasks.indexOf(task);
76+
//
77+
// if (taskPosition >= 0) {
78+
// tasks.splice(taskPosition, 1);
79+
// return `${task} удалена!`;
80+
// } else {
81+
// return `Нет такой задачи!`;
82+
// }
83+
// }
84+
//
85+
// function replaceTask(task) {
86+
// const taskPosition = tasks.indexOf(task);
87+
//
88+
// if (taskPosition >= 0) {
89+
// const getTask = String(tasks.splice(taskPosition, 1));
90+
// tasks.unshift(getTask);
91+
// return `${task} перемещена в начало!`;
92+
// } else {
93+
// return `Нет такой задачи!`;
94+
// }
95+
// }

0 commit comments

Comments
 (0)