3
votes

Comment retourner tous les noms avec la deuxième lettre "h" - à partir d'un tableau de noms?

Je dois écrire une fonction qui renvoie tous les utilisateurs avec une deuxième lettre «h» dans leur nom.

function letter(){
    var index = users.indexOf("h") == [1];
    return(index);
}

J'ai commencé à coder quelque chose comme ça mais ça ne fonctionne pas.

/ p>

var users = ["Roman","Sherry","Sandrah","Shamaika"];

Je suis nouveau dans JavaScript et je ne sais pas par où commencer.


1 commentaires

Essayez users.filter ((user) => user.chatAt (1) === 'h')


7 Réponses :


0
votes

2 commentaires

Pourquoi 1 comme tableau?


@quirimmo désolé a copié cela de la question, corrigé maintenant



1
votes

Vous pouvez utiliser filtre .

const users = ["Roman","Sherry","Sandrah","Shamaika"];

let filteredUsers = users.filter(user => user.charAt(1) === 'h');
console.log(filteredUsers);


0 commentaires

1
votes

Vous pouvez filtrer le tableau en prenant une fonction qui vérifie le caractère à l'index 1.

function checkLetter1(string) {
    return string[1] === 'h';
}

var users = ["Roman", "Sherry", "Sandrah", "Shamaika"];

console.log(users.filter(checkLetter1));


1 commentaires

Vous êtes gaspillé pour ça :)



0
votes

Actuellement, votre code recherche le premier index de h dans le tableau des noms d'utilisateurs, ce qui renverra des résultats incorrects. Pensez à utiliser la méthode Array # filter pour sélectionner les noms qui correspondent à vos critères du deuxième caractère étant h comme ceci:

var users = ["Roman","Sherry","Sandrah","Shamaika"];

function letter(name){
    // Return true if the second character of name is an 'h'
    return name[1] === 'h';
}

// Use filter() method to get array of items that satisfy
// the criteria of your letter() function
var filteredUsers = users.filter(letter);

console.log(filteredUsers);


0 commentaires

0
votes

Vous pouvez faire quelque chose comme ceci:

function usersWithSecondH(users) {
  return users.filter(user => user[1] === 'h');
}

Donc, vérifier essentiellement la valeur de la deuxième lettre et renvoyer ces noms dans un nouveau tableau s'il correspond à «h»;


0 commentaires

0
votes
var users = ["Roman","Sherry","Sandrah","Shamaika"];
var t=users.filter((x)=>x.indexOf('h')==1)
console.log(t);
This will do

0 commentaires

0
votes

La fonction suivante retournera les éléments du tableau (comme un tableau de résultat) qui ont le deuxième caractère comme "h":

function getMyUsers2() {

    let usersWithH = [];

    for (let user of users) {
        let userChars = user.split("");
        if (userChars[1] == "h") {
            usersWithH.push(user);
        }
    }

    return usersWithH;
}

console.log(getMyUsers2()); // prints [ "Sherry", "Shamaika" ]

La sortie:

[ "Sherry", "Shamaika" ]


EDIT: La fonction getMyUsers peut également être codée de manière plus détaillée comme suit:

var users = ["Roman", "Sherry", "Sandrah", "Shamaika"];

function getMyUsers() {
    return users.map(user => user.split(""))
                .filter(userChars => userChars[1] == "h")
                .map(userChars => user.join(""));
};

console.log(getMyUsers());


0 commentaires