如何在Javascript数组中查找单词(字符串)?

时间:2019-02-11 18:18:35

标签: javascript arrays

我需要检查数组中是否包含单词

这是我的代码,请帮助

    var name = ['heine', 'hans'];
    var password = ['12343', '1234'];
    function login() {
    var pos;
        if(name.includes('hans')) {
            console.log("enthält");
            pos = name.indexOf('hans');
            console.log(pos)
            if(password[pos] === '1234') {
                console.log("angemeldet")
            }
        }
      }

consoleout = 6,但为什么必须为1

如果单词hans在数组中,那么我需要从单词在数组中的位置开始

4 个答案:

答案 0 :(得分:2)

您可能会方便地使用some()。它将把索引传递到回调中,您可以使用该回调从passwords数组中找到相应的值:

function test(name, pw) {
  let names = ["heine", "hans"];
  let passwords = ["12343", "1234"];
  // is there `some` name/pw combinations that matches?
  return names.some((n, index) => name == n && pw == passwords[index])
}

console.log(test("hans", '1234'))   // true
console.log(test("hans", '12345'))  // false
console.log(test("hans", '12343'))  // false

console.log(test("heine", '12343')) // true
console.log(test("mark", '12343'))  // false
 

答案 1 :(得分:0)

您可以使用它。我不确定这是否是您想要的。

let names = ["heine", "hans"];
let password = ["12343", "1234"];
let i, temp;

function log(login, pass) {
    if((i = names.indexOf(login)) !== -1){
        if(password[i] === pass)
            console.log("Logged!");
    }
}

log("hans", "1234")

答案 2 :(得分:0)

根据您的情况,您也可以使用findIndex尝试以下操作:

const usernames = ['heine', 'hans'];
const passwords = ['12343', '1234'];

function login(user, pass)
{
    let userIdx = usernames.findIndex(x => x === user);

    // On a real application do not give any tip about which is
    // wrong, just return "invalid username or password" on both cases.
    
    if (userIdx < 0)
        return "Invalid username!";

    if (pass !== passwords[userIdx])
        return "Invalid password!";

    return "Login OK!"
}

console.log(login("heine", "12343"));
console.log(login("hans", "lala"));

答案 3 :(得分:0)

这里的问题是名称是window.name,它是一个字符串。

var name = ['heine', 'hans'];
console.log(window.name, typeof window.name)

var xname = ['heine', 'hans'];
console.log(window.xname, typeof window.xname)

如果您位于全局范围内,请将变量更改为另一个不保留的单词。