遍历javascript中的许多数组
我试图在Javascript中搜索三个不同的字符串数组,寻找一个名称(由用户提交),如果找到这个名称,我必须返回它所在的数组 诸如此类: HTML遍历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
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为什么要这样做?你改变了什么?我只是把代码改短了。因此更少的错误。