我必须编写一个函数,以返回所有用户名称中第二个字母为“ h”的用户。
var users = ["Roman","Sherry","Sandrah","Shamaika"];
我开始编写类似这样的代码,但是它不起作用。
function letter(){
var index = users.indexOf("h") == [1];
return(index);
}
我是JavaScript的新手,我不确定从哪里开始。
答案 0 :(得分:1)
您可以使用filter
。
const users = ["Roman","Sherry","Sandrah","Shamaika"];
let filteredUsers = users.filter(user => user.charAt(1) === 'h');
console.log(filteredUsers);
答案 1 :(得分:1)
您可以通过采用检查索引1
处的字符的函数来过滤数组。
function checkLetter1(string) {
return string[1] === 'h';
}
var users = ["Roman", "Sherry", "Sandrah", "Shamaika"];
console.log(users.filter(checkLetter1));
答案 2 :(得分:0)
您缺少filter
var users = ["Roman","Sherry","Sandrah","Shamaika"];
var index = users.filter(a=> a.indexOf("h") === 1);
console.log(index);
答案 3 :(得分:0)
当前,您的代码正在用户名数组中寻找h
的第一个索引,这将返回错误的结果。考虑使用Array#filter
方法来选择与您的第二个字符为h
的条件相匹配的名称,如下所示:
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);
答案 4 :(得分:0)
您可以执行以下操作:
function usersWithSecondH(users) {
return users.filter(user => user[1] === 'h');
}
因此本质上是检查第二个字母的值,并在匹配“ h”的情况下在新数组中返回这些名称;
答案 5 :(得分:0)
var users = ["Roman","Sherry","Sandrah","Shamaika"];
var t=users.filter((x)=>x.indexOf('h')==1)
console.log(t);
可以做到
答案 6 :(得分:0)
以下函数将返回第二个字符为“ h”的数组元素(作为结果数组):
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());
输出:
[ "Sherry", "Shamaika" ]
编辑:getMyUsers
函数也可以按以下更详细的方式进行编码:
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" ]