-3
votes

Problèmes de condition de Java Scrip For Loop

J'ai un tableau [ "apple", "apple-pie", "orange", "banana"] et une valeur qui est apple .

Je veux boucler le tableau pour trouver quel élément comprend la valeur, si l'élément du tableau comprend la valeur, afficher l'élément du tableau. Si l'élément de tableau n'inclut pas la valeur, affichez la valeur.

Mon code semble correct, le seul problème est qu'il affiche la valeur plusieurs fois lorsqu'il y a plusieurs éléments de tableau non inclus dans la valeur. Est-il possible d'afficher la valeur une seule fois, quel que soit le nombre d'éléments du tableau qui ne sont pas inclus dans la valeur (bien sûr dans la boucle).

Mon code:

Je veux juste console.log("apple"); montrer la pomme une fois

    let friute = [ "apple", "apple-pie", "orange", "banana"];

    for (i=0; i<friute.length; i++) {

        if (friute[i].includes("apple") ) {
            console.log( friute[i] )
        } else {

        console.log("apple");

        }  
    }


3 commentaires

Votre code fait exactement ce que vous écrivez dans votre description et que vous voulez qu'il fasse: "si l'élément du tableau inclut la valeur, affichez l'élément du tableau. Si l'élément du tableau n'inclut pas la valeur, affichez la valeur."


Le résultat de mon code est apple、apple-pie、apple、apple . Le résultat que je veux est apple、apple-pie、apple


Ma réponse ci-dessous vous donne le résultat que vous souhaitez. Veuillez voter et accepter si vous pensez que c'est utile


4 Réponses :


0
votes
let index = friute.indexOf('apple');
console.log(index===-1 ?'apple':friute[index]);

0 commentaires

1
votes

Utilisez l'attribut flag

let friute = [ "apple", "apple-pie", "orange", "banana"];
let flag =0;
    for (i=0; i<friute.length; i++) {
        if (friute[i].includes("apple") ) {
            console.log( friute[i] )
        } else {
         if(flag===0) {
           console.log("apple");
           flag = 1;
          }      
        }  
    }


0 commentaires

0
votes

Cette modification de votre code n'écrit apple que la première fois qu'elle rencontre un élément de tableau qui n'inclut pas apple.

Cela fonctionne en introduisant une variable booléenne show qui est true au début mais définie sur false après la première fois qu'un élément de tableau n'inclut pas apple. En enveloppant l'instruction de journal dans une condition if qui vérifie si show est vrai, apple n'est imprimé qu'une seule fois pour tous les éléments du tableau qui n'incluent pas apple.

    let friute = [ "apple", "apple-pie", "orange", "banana"];
    let show = true;

    for (i=0; i<friute.length; i++) {

        if (friute[i].includes("apple") ) {
            console.log( friute[i] )
        } else {
            if (show) {
                console.log("apple");
                show = false;
            }
        }  
    }


1 commentaires

Cela fonctionne bien, c'est une façon très intelligente de le faire.



1
votes

essayez ceci mon ami

let friute = [ "apple", "apple-pie", "orange", "banana"];
let appleIn = 0;
    for (i=0; i<friute.length; i++) {

        if (friute[i].includes("apple") ) {
            console.log( friute[i] )
        } else {
             if(appleIn ==0)
             console.log("apple");
             appleIn =1;
            }
        }


1 commentaires

essayez ceci, mon ami n'est pas la meilleure explication que vous puissiez écrire avec le code fourni. Au lieu de cela, expliquez ce que vous avez changé et pourquoi et ce que fait votre code et comment il résoudra le problème. Placer également votre code dans un extrait de code permettrait à quiconque de l'exécuter et de voir les résultats. Est-ce suffisant pour un vote défavorable? Absolument. Et d'ailleurs, cela s'applique à toutes les autres réponses jusqu'à présent sur cette question.