如何从名称数组中返回所有带有第二个字母“ h”的名称?

时间:2019-01-07 09:38:39

标签: javascript arrays string indexof

我必须编写一个函数,以返回所有用户名称中第二个字母为“ h”的用户。

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

我开始编写类似这样的代码,但是它不起作用。

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

我是JavaScript的新手,我不确定从哪里开始。

7 个答案:

答案 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" ]