Сортировка ToDoList по алфавиту - выполненные ИЛИ незавершенные задачи - PullRequest
0 голосов
/ 30 января 2019
var taskList =[ 
{completed:false,task:"to home work"}, 
{completed:true,task:"test"},
{completed:true,task:"app"},
{completed:false,task:"doing work"},
{completed:false,task:"sleeping"}, 
{completed:true,task:"to do"},
{completed:true,task:"to home work"},
{completed:false,task:" work"},];

Это список. Я показываю этот список, как показано ниже

COMPLETED TASK           IMCOMPLE TASK
test                      to home work
app                       doing work
to do                     sleeping
to home work              work

Теперь я хочу отсортировать каждый список по алфавиту - один за другим, не затрагивая другой список

как
если я хочу отсортировать завершенную ЗАДАЧУ, просто сортируйте этот список, не трогайте незавершенную ЗАДАЧУ.

1 Ответ

0 голосов
/ 30 января 2019

Вы можете использовать метод сортировки и игнорировать сортировку заданных заданий, для которых указано значение.

В этом примере вы можете передать true в функцию sortTasks для сортировки выполненных задач и false для сортировки незавершенных задач.

        var taskList =[ 
          {completed:false,task:"z"}, 
          {completed:true,task:"d"},
          {completed:true,task:"c"},
          {completed:false,task:"y"},
          {completed:false,task:"x"}, 
          {completed:true,task:"b"},
          {completed:true,task:"a"},
          {completed:false,task:"w"},];
        
        function sortTasks(isCompleted) {
          return taskList.sort((a,b) => {
            if ((a.completed !== isCompleted) || (b.completed !== isCompleted)) return 0;
            if (a.task > b.task) return 1;
            if (b.task > a.task) return -1; 
          });
        }
    
      //console.log(sortTasks(true)); // sort completed tasks only
      // console.log(sortTasks(false))); // sort incomplete tasks only
      var newArray = sortTasks(true).filter(a => a.completed);
      console.log(newArray);
...