Не выводит return

Рейтинг: -3Ответов: 1Опубликовано: 19.01.2023

const coursesSet = {
  courses: ['HTML', 'CSS', 'JavaScript', 'React', 'PostgreSQL'],
  getCourses() {
    return this.courses;
  },
  addCourse(courseName) {
    this.courses.push(courseName);
    for (let course of this.courses) {
      if (this.courses.includes(course)) {
        return 'Ви вже маєте такий курс';
      }
    }
  },
};
coursesSet.addCourse('Jue');
coursesSet.addCourse('CSS');
console.log(coursesSet.getCourses());

Ответы

▲ 0Принят

У вас не правильно реализована проверка. Сначала надо проверить, а уже затем добавлять.

Вот пример реализации:

const coursesSet = {
  courses: ['HTML', 'CSS', 'JavaScript', 'React', 'PostgreSQL'],
  getCourses() {
    return this.courses;
  },
  addCourse(courseName) {
    // Проверяем наличие
    if (this.courses.includes(courseName)) {
      // есть, сообщаем об этом
      return 'Ви вже маєте такий курс';
    } else {
      // Нету, добавляем
      this.courses.push(courseName);
      return 'Курс добавлен'
    }
  },
};

console.log(coursesSet.addCourse('Jue'));
console.log(coursesSet.addCourse('CSS'));
console.log(coursesSet.getCourses());

UPD из комментариев
И еще пара примеров, как можно организовать код:

Из метода addCourse убран лишний else, т.к. return прерывает дальнейшее выполнение кода и возвращает результат.

Декомпозиция задач

addItem отвечает за добавление элемента
addCourse2 отвечает за проверку наличия элемента в массиве

const coursesSet = {
  courses: ['HTML', 'CSS', 'JavaScript', 'React', 'PostgreSQL'],
  getCourses() {
    return this.courses;
  },
  addCourse(courseName) {
    if (this.courses.includes(courseName)) return 'Ви вже маєте такий курс';
    this.courses.push(courseName);
    return 'Курс добавлен'
  },
  // Два новых метода с декомпозицией задач
  addItem(courseName) {
    this.courses.push(courseName);
    return 'Курс добавлен'
  },
  addCourse2(courseName) {
    return this.courses.includes(courseName) ? 'Ви вже маєте такий курс' : this.addItem(courseName);
  },
};

console.log(coursesSet.addCourse('Jue'));
console.log(coursesSet.addCourse('CSS'));
console.log(coursesSet.addCourse2('Vue'));
console.log(coursesSet.addCourse2('CSS'));
console.log(coursesSet.getCourses());