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')