Как проверить значение ключа в Object и использовать его в операторе if? JavaScript - PullRequest
0 голосов
/ 09 января 2020

Я настоящий новичок и просто энтузиаст JavaScript. Мне нужна помощь. У меня проблема с кодом ниже:

if (newTask.done === false) {
        newTask = doneArray.push({
            id: doneArray.length,
            description: clickedTask.textContent,
            done: false
        });
    } else {
    removeTask = doneArray.splice(newTask.id, 1);
    };

Мне нужно проверить, есть ли в моем объекте false или true значение сделано ключ . Когда новое задание имеет значение false, я хочу pu sh передать его в массив , а если нет удалить из моего массива. Я не знаю, как взять значение id и использовать его в , если заявление . Затем измените это значение в объекте на true . Я не знаю, может быть, есть лучший способ заставить его работать, а не удалять весь код. Вот полный код: codepen.io

Ответы [ 2 ]

1 голос
/ 09 января 2020

Вот простой подход, который должен помочь вам в достижении вашей цели. Проверьте комментарии для деталей и оставьте комментарий, если неясно:

// Here is an array containing 3 new tasks
const allTasks = [{
  id: 0,
  description: 'desc 1',
  done: true
}, {
  id: 1,
  description: 'desc 2',
  done: false
}, {
  id: 2,
  description: 'desc 3',
  done: true
}];

// Here is an function to get a new array of only NOT DONE tasks
// We achieve this by simply using Array.prototype.filter method
const filterDoneTasks = arr => arr.filter(task => !task.done);

const pendingTasks = filterDoneTasks(allTasks);

console.log(pendingTasks);
0 голосов
/ 09 января 2020

Попробуйте что-нибудь подобное. ..

if (newTask.done === false) {
    newTask = doneArray.push({
        id: doneArray.length,
        description: clickedTask.textContent,
        done: false
    });
} else {
    for(let i = 0; i < doneArray.length; ++i){
       if(doneArray[i].id == newTask.id)
           removeTask = doneArray.splice(i, 1);
           break;
       }
} };

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

edit-- это также может быть просто длина начинается с 1, а индекс массива начинается с 0. Поэтому вы должны учитывать это, если удаляется неправильное число.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...