Не уверены, что делает этот код? Я хочу, чтобы это сделало противоположное тому, что он на самом деле делает - PullRequest
0 голосов
/ 24 октября 2019

Я работаю над этим проектом, который уже начал кто-то другой, и я не уверен, как работает эта часть кода, он на самом деле делает то, чего я не хочу.

В настоящее время, когда я использую несколько вариантов выбора и нажимаю кнопку, она добавляет в массив те, которые я НЕ ВЫБИРАЛА, когда я хочу добавить те, которые я выбрала, в массив, тогда этот массивиспользуется в качестве данных для таблицы, поэтому очевидно, что он выбирает неправильный материал.

Этот метод используется при нажатии кнопки. package_courses - это окончательный массив данных таблицы.

addCourses() {
    const currentCourses = this.packageForm.package_courses.map((item) => item.course_id);
    const courses = this.courses.filter((item) => {
        return this.selectedCourses.indexOf(item.id) && currentCourses.indexOf(item.id) < 0
    });

    courses.forEach((course) => {
        this.packageForm.package_courses.push({
            course_id: course.id,
            course: course,
            price: 0
        });
    });
    this.selectedCourses = [];
},

1 Ответ

1 голос
/ 24 октября 2019

Во второй строке метод filter зацикливает все элементы в this.courses и возвращает только те элементы, для которых инструкция внутри возвращает значение true. indexOf - это метод массива, который ищет в массиве указанный элемент и возвращает позицию элемента в массиве или -1, если элементы не найдены. так что я думаю, что вы хотите сделать, это фильтр для курсов, где indexOf больше или равно чем / 0, а не меньше, вот ваш код изменен.

addCourses() {
    const currentCourses = this.packageForm.package_courses.map((item) => item.course_id);
    const courses = this.courses.filter((item) => {
        return this.selectedCourses.indexOf(item.id) && currentCourses.indexOf(item.id) >= 0
    });

    courses.forEach((course) => {
        this.packageForm.package_courses.push({
            course_id: course.id,
            course: course,
            price: 0
        });
    });
    this.selectedCourses = [];
},
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...