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.
7 Réponses :
Il vous manque filtre a > var users = ["Roman","Sherry","Sandrah","Shamaika"];
var index = users.filter(a=> a.indexOf("h") === 1);
console.log(index);
Pourquoi 1 comme tableau?
@quirimmo désolé a copié cela de la question, corrigé maintenant
Vous pouvez utiliser filtre
.
const users = ["Roman","Sherry","Sandrah","Shamaika"]; let filteredUsers = users.filter(user => user.charAt(1) === 'h'); console.log(filteredUsers);
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));
Vous êtes gaspillé pour ça :)
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);
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»;
var users = ["Roman","Sherry","Sandrah","Shamaika"]; var t=users.filter((x)=>x.indexOf('h')==1) console.log(t); This will do
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());
Essayez
users.filter ((user) => user.chatAt (1) === 'h')