var userInput = prompt('Which fruit would you like?');
      var fruitList = ["banana", 'strawberries', "mango"];

      for(var i=0; i<fruitList.length; i++);
        if(userInput == fruitList[i]){
          alert("Sorry, we are out of " + userInput);
        }else{
          var userFruit = document.createElement('li');
          userFruit.textContent = userInput;
          var fruits = document.getElementById('list');
          fruits.appendChild(userFruit);
        }
    <div id="list"></div>

Il semble que la boucle for ne fonctionne pas car elle ajoute l'entrée utilisateur dans la liste mais elle ne reconnaît pas les éléments du tableau. La liste que je n'ai pas ajoutée ici a id="list" et elle contient les trois éléments du tableau. Je vous remercie!

  var userInput = prompt('Which fruit would you like?');
  var fruitList = ["banana", 'strawberries', "mango"];

  for(var i=0; i<fruitList.length; i++);
    if(userInput == fruitList[i]){
      alert("Sorry, we are out of " + userInput);
    }else{
      var userFruit = document.createElement('li');
      userFruit.textContent = userInput;
      var fruits = document.getElementById('list');
      fruits.appendChild(userFruit);
    }
1
Vlad 2 juin 2020 à 06:34

2 réponses

C'est parce qu'il compare votre entrée à tous les fruits du tableau, donc à chaque fois qu'il n'y en a pas beaucoup, il l'ajoutera à la liste. Vous pouvez à la place utiliser la méthode includes pour vérifier l'existence de l'élément dans le tableau.

  var userInput = prompt('Which fruit would you like?');

  var fruitList = ["banana", 'strawberries', "mango"];

  if(fruitList.includes(userInput)) {
    alert("Sorry, we are out of " + userInput);
  }
  else {
    var userFruit = document.createElement('li');
    userFruit.textContent = userInput;
    var fruits = document.getElementById('list');
    fruits.appendChild(userFruit);
  }
 <div id="list"></div>
0
Addis 2 juin 2020 à 04:08

J'ai édité votre code plus logique.

Est-ce similaire à ce que vous attendez?

var userInput = prompt('Which fruit would you like?');
var fruitList = ["banana", 'strawberries', "mango"];
let newItem = false;
for (let i = 0; i < fruitList.length; i++) {
  if (userInput == fruitList[i]) {
    newItem = false;
    alert("Sorry, we are out of " + userInput);
  } else {
    newItem = true;
  }
}
if (newItem) {

  let userFruit = document.createElement('li');
  userFruit.innerHTML = userInput
  let fruits = document.getElementById('list');
  fruits.appendChild(userFruit);
}
<ul id="list">

</ul>
1
jinongun 2 juin 2020 à 03:45