Javascript 在用户输入的字符串中搜索数组的任何值

Javascript 在用户输入的字符串中搜索数组的任何值,javascript,arrays,javascript-objects,Javascript,Arrays,Javascript Objects,我有一个类似这样的对象:var object={keyword:next,换句话说:error,test:error}。我想将用户输入的输入输入到文本字段中,并在该输入中搜索任何对象键。如果是匹配项,我还希望它检查该键的值是否为next。如果是这样,我希望它能够运行一个函数。如果某个键匹配,但该值不是下一个值,则我希望它能够控制台。记录该值 以下是我当前使用的代码: var对象={关键字:下一个,其他单词:错误,测试:错误} var匹配; 文档。添加了“键控”列表,函数E{ var text=

我有一个类似这样的对象:var object={keyword:next,换句话说:error,test:error}。我想将用户输入的输入输入到文本字段中,并在该输入中搜索任何对象键。如果是匹配项,我还希望它检查该键的值是否为next。如果是这样,我希望它能够运行一个函数。如果某个键匹配,但该值不是下一个值,则我希望它能够控制台。记录该值

以下是我当前使用的代码:

var对象={关键字:下一个,其他单词:错误,测试:错误} var匹配; 文档。添加了“键控”列表,函数E{ var text=document.getElementByIdinput.value; var options=Object.keysobject; 如果e.keyCode==13{ ifoptions.somefunctionelement{ 匹配=元素; 返回text.toString.indexOfelement!=-1; }{ 如果对象[match].toString==next{ console.lognext; document.getElementByIdinput.value=; }否则{ console.logobject[匹配]; document.getElementByIdinput.value=; } }否则{ document.getElementByIdinput.value=; 在您的响应中找不到console.logA有效关键字:请重试!; } } };
以下是如何使用Object.entries方法解决问题的想法

const句子=这个句子有一个关键字; const object={关键字:next,其他单词:错误,测试:错误}; 常量someFunc==>{ 控制台。日志函数!; } Object.entriesobject.forEach[key,val]=>{ 如果是句子。includeskey{ val==next?someFunc:console.log'here'; }
} 下面是一个基本示例,可以让您了解如何使用Object.keys

var object={关键字:next,其他单词:error,test:error}; var yourSearchWord='关键字'; //获取密钥名称 var objectKeys=Object.keysobject; ifobjectKeys.indexOfyourSearchWord!=-1 { ifobject[yourSearchWord]=“下一步”{ console.log'The value is next'; //调用下一个函数 }
} 给定一个输入,您可以使用检查它是否是对象的属性。使用括号表示法,然后可以获取作为输入提供的属性的值,以检查它是否等于下一个值:

var object={关键字:next,其他单词:error,test:error}; var userInput=关键字; ifobject.hasOwnPropertyuserInput{//检查用户输入是否为对象中的属性 变量值=对象[userInput] ifvalue===next{//检查用户输入的值是否为next //运行一些函数 接下来,我们可以调用一个函数; }否则{//该值不是next,因此我们可以记录它 console.logvalue; }
}需要考虑两件事:不是谁投了反对票,而是当您使用indexOf时,您的代码需要对对象中的所有键进行线性搜索,相反,有更快的方法来检查对象中键的成员资格。另外,也许对代码的工作原理多做一点解释可能有助于回答这个问题。不确定这些是否是你被否决的原因,只是猜测是的,我同意你的观点,尼克,也喜欢你的解决方案。