Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
遍历javascript中的许多数组_Javascript_Arrays_Loops_Search - Fatal编程技术网

遍历javascript中的许多数组

遍历javascript中的许多数组,javascript,arrays,loops,search,Javascript,Arrays,Loops,Search,我试图在Javascript中搜索三个不同的字符串数组,寻找一个名称(由用户提交),如果找到这个名称,我必须返回它所在的数组 诸如此类: HTML let users=['mario','gianni','pinotto']; 让admins=['moana','cicciolina','selen']; 让mods=['frodo','sam','bilbo']; const form=document.querySelector('form'); const btnNome=documen

我试图在Javascript中搜索三个不同的字符串数组,寻找一个名称(由用户提交),如果找到这个名称,我必须返回它所在的数组

诸如此类: HTML

let users=['mario','gianni','pinotto'];
让admins=['moana','cicciolina','selen'];
让mods=['frodo','sam','bilbo'];
const form=document.querySelector('form');
const btnNome=document.querySelector('#nome');
设risp=document.querySelector(“#risposta”);
函数搜索(){
risp.innerText='';
设nome=btnNome.value.trim();
对于(i=0;i

插入名称
试试这个

let users=['mario','gianni','pinotto'];
让admins=['moana','cicciolina','selen'];
让mods=['frodo','sam','bilbo'];
const form=document.querySelector('form');
const btnNome=document.querySelector('#nome');
设risp=document.querySelector(“#risposta”);
函数搜索(){
让searchName=btnNome.value;
risp.innerHTML=
checkWithArray(搜索名称,'用户',用户)+
checkWithArray(搜索名称,'admin',admins)+
checkWithArray(搜索名称,'mod',mods);
console.log(searchName);
form.reset();
};
函数checkWithArray(搜索名称、标题、arr){
如果(arr.indexOf(searchName)>-1){
返回${searchName}为${title};
}
返回“”;
}

插入名称

您可以使用数组的
includes
方法查找数组中是否存在元素:

let users = ["mario", "gianni", "pinotto"];
let admins = ["moana", "cicciolina", "selen"];
let mods = ["frodo", "sam", "bilbo"];

const form = document.querySelector("form");
const btnNome = document.querySelector("#nome");
let risp = document.querySelector("#risposta");

function search() {
  risp.innerText = "";
  let nome = btnNome.value.trim();

  checkWithArray(nome, "user", users);
  checkWithArray(nome, "admin", admins);
  checkWithArray(nome, "moderator", mods);

  form.reset();
}

function checkWithArray(searchName, title, arr) {
  const isFound = arr.includes(searchName);

  if (isFound) {
    let text;

    switch (title) {
      case "user":
        text = `${searchName} is a registered user`;
        break;
      case "admin":
        text = `${searchName} is an admin`;
        break;
      case "moderator":
        text = `${searchName} is a moderator`;
        break;
    }

    risp.innerText += text;
  } else {
    risp.innerText += `${searchName} NON è registrato`;
  }
}



User Object.entries、find和includes方法

let users=[“马里奥”、“詹尼”、“皮诺托”];
让admins=[“moana”、“cicciolina”、“selen”];
让mods=[“佛罗多”,“山姆”,“比尔博];
const data={users,admins,mods};
const search=str=>{
const found=Object.entries(data.find)([key,arr])=>arr.includes(str));
返回找到?找到[0]:“”;
};
常量键=搜索(“sam”);
常量行=数据[键];

log(`sam在${key}中找到,数组是${row}`)你能修复缩进吗。这对阅读和理解来说绝对是可怕的……没有id为
risposta
的元素。此外,变量是
risp
而不是
risposta
,您必须使用
var
let
const
在JavaScript中定义一个变量,否则它们是全局变量。在这种情况下,您应该使用
let
,以获得具有块作用域的可写变量。这是否回答了您的问题?将所有数组合并为一个数组,并使用
some
OP为什么要这样做?你改变了什么?我只是把代码改短了。因此更少的错误。