Bonjour,

je rencontre un petit problème avec mon code(il n'est pas trop lang)

Tout fonctionne comme il faut sauf pour 'toggleall' dans la condition la premiere parte fonctionne mais la deuxieme(else) ne fonctionne pas.
Pouvez-vous m'aider à detecter le problème et merci d'avance.

var todolist={
  todos:[],

  add:function (x)
  {this.todos.push( {
    name:x,
    completed:false,

  });this.display();}

  ,
  display:function (){if (this.todos.length===0){console.log('your to do list is empty')} else {console.log('mytodos:');for(var i=0;i<this.todos.length;i++){if(
    this.todos[i].completed===true 
    ){console.log(this.todos[i].name,'(*)')}else{console.log(this.todos[i].name,'( )')}}}},
  edit:function(x,newvalue){this.todos[x].name = newvalue;this.display();},
  togglecompleted: function(x){var todo=this.todos[x];todo.completed=!todo.completed;this.display(); },
  toggleall:function(){
    var completedtodo=0;
    var totaltodo=this.todos.length;
   for(var i=0;i<totaltodo;i++){if(this.todos[i].completed=true){completedtodo++}}
    if(completedtodo===totaltodo){for(var n=0;n<totaltodo;n++){this.todos[n].completed=false;}

    }else {for(var n=0;n<totaltodo;n++){this.todos[n].completed=true;}};this.display()

  },

}

5 réponses


Bonjour,

Pourrais-tu indenter ton code et le placer dans un bloc code ?
Parce que la c'est parfaitement illisible.

comment faire pour placer dans un bloc code

Tu utilises le bouton "</>" pour entourer ton code d'un bloc code, pourrais-tu aussi nous en dire plus sur ton problème ce que tu essayes de faire etc.. car "J'ai un problème avec mon code" ne nous aide absolument pas.

En cliquant sur l'îcone </> de l'éditeur.

Bonjour,

tu as une erreur de condition a un endroit, tu fais une assignation de valeur au lieu d'un test de condition

var todolist = {
  todos: [],
  add: function(x) {
    this.todos.push({
      name: x,
      completed: false
    });
    this.display();
  },
  display: function() {
    if (this.todos.length === 0) {
      console.log('your to do list is empty')
    } else {
      console.log('---');
      console.log('mytodos:');
      for (var i = 0; i < this.todos.length; i++) {
        if (this.todos[i].completed === true) {
          console.log(this.todos[i].name, '(*)')
        } else {
          console.log(this.todos[i].name, '( )')
        }
      }
    }
  },
  edit: function(x, newvalue) {
    this.todos[x].name = newvalue;
    this.display();
  },
  togglecompleted: function(x) {
    var todo = this.todos[x];
    todo.completed = !todo.completed;
    this.display();
  },
  toggleall: function() {
    var completedtodo = 0;
    var totaltodo = this.todos.length;
    for (var i = 0; i < totaltodo; i++) {
      if (this.todos[i].completed = true) { // ici il te manque un double ou triple egal (==) ou (===).
        completedtodo++
      }
    }

    if (completedtodo === totaltodo) {
      for (var n = 0; n < totaltodo; n++) {
        this.todos[n].completed = false;
      }
    } else {
      for (var n = 0; n < totaltodo; n++) {
        this.todos[n].completed = true;
      }
    }
    this.display();
  }
};