Надеюсь, я смогу получить некоторую помощь в прохождении этого теста, с которым я плохо борюсь.
Я пытаюсь передать его с помощью функции getTask
let createNewTodoItem = task => {
var task = {
finished: false,
task: task
}
return task
}
let addItemToTasks = (tasks, task) => {
tasks.push(task);
}
let getTask = (tasks, task) => {
for (let i = 0; i < tasks.length; i++) {
if (tasks[i] == task) { //check if array contains the task//return the unfinished task
return task
} else {
return null
}
}
}
describe('getTask', function () {
it('should take a list of tasks and an individual task and returns the task object if it exists',
function () {
let tasks = []
addItemToTasks(tasks, createNewTodoItem('finish reading moby dick'))
addItemToTasks(tasks, createNewTodoItem('rake leaves'))
addItemToTasks(tasks, createNewTodoItem('go grocery shopping'))
addItemToTasks(tasks, createNewTodoItem('phone back andrew'))
let task = getTask(tasks, 'go grocery shopping')
let task2 = getTask(tasks, 'practice coding')
chai.assert.equal(
false,
task.finished,
'getTask should return a unfinished task'
)
chai.assert.equal(
null,
task2,
'getTask should return nothing since this task was not added to the array'
)
})
})
Мой мыслительный процесс выглядит следующим образом. Мы пытаемся проверить, содержит ли массив задачу, которая была добавлена функцией addItemToTask (). Затем мы утверждаем, что продуктовый магазин существует в массиве, но это незаконченная задача. Поэтому я пытаюсь реализовать это путем циклического перемещения по массиву и возврата любых существующих задач, независимо от того, завершены они или нет
Затем в блоке else мы можем просто вернуть ноль, чтобы удовлетворить второе утверждение, которое ожидает, что ноль будет возвращен для любого элемента, которого нет в массиве.
Когда я запускаю точку останова
Не уверен, что моя логика или синтаксис неверны (скорее всего, оба: P)
Спасибо, что рады уточнить все, что я оставил неясным в этом вопросе!
Также, если это поможет, вот скриншот моей точки останова на элементе задач в функции getTask
введите описание изображения здесь