Javascript 如何检查字符串的一部分是否在数组中?

Javascript 如何检查字符串的一部分是否在数组中?,javascript,arrays,Javascript,Arrays,这就是我所理解的,并且已经启动并运行了正确的输出,但是我如何使用输入“hi john”并获得“Hello User”的输出而不将其烘焙到数组中呢?让我们将您的需求简化为: 您需要检查数组“arr”的任何元素是否包含字符串“s”的一部分 var检查=功能(arr,s){ 对于(变量i=0;i-1){ 返回true; } } 返回false; } 您可以这样做: var问候语=[“你好”,“你好”]; 变量名称=[“约翰”、“詹姆斯”]; submit.onclick=函数(){ //将输入拆分为

这就是我所理解的,并且已经启动并运行了正确的输出,但是我如何使用输入“hi john”并获得“Hello User”的输出而不将其烘焙到数组中呢?

让我们将您的需求简化为: 您需要检查数组“arr”的任何元素是否包含字符串“s”的一部分

var检查=功能(arr,s){
对于(变量i=0;i-1){
返回true;
}
}
返回false;
}

您可以这样做:

var问候语=[“你好”,“你好”];
变量名称=[“约翰”、“詹姆斯”];
submit.onclick=函数(){
//将输入拆分为单词,并将该数组转换为集合以进行快速查找
var words=新集合(用户输入.value.split(/\s+/);
//选择不在输入单词中的问候语。
//如果所有这些都出现在输入中,则取第一个问候词
var greeting=greetings.find(greeting=>!words.has(greeting))| | greetings[0];
//选择不在输入单词中的名称(或取第一个)
var name=names.find(name=>!words.has(name))| | names[0];
//输出文本内容(非innerHTML!)
text_input.textContent=用户_input.value;
说些什么。text内容=问候语+“”+姓名;
}
输入:提交
你说:

回复:
documnet
是一个打字错误<代码>假设在该行运行时未定义。您是否意识到您正在向
数组
对象添加属性,而不是声明变量?假设您知道这一点,为什么要采用这种方法?这实际上不是代码的一部分,而是在匆忙中完成的
if(Array.greeting.includes(user_-input)>0{say=“Hello”}if(Array.names.includes(user_-input)>0{say=“user”}
我需要将这两种方法结合起来,这样答案要么来自两者,要么来自组合目标;Array.Names=[“john”,“james”];if(Array.Greeting.includes(user_-input)>0{say=“Hello.”}if(Array.Names.includes(user_-input)>0{say=“user”}这对我来说也是一样的,但是我如何检查
用户_-input
是否从两个数组中都有值?例如“hi john”。扩展我的解决方案,
if(check(Array.greeting,user_input)和&check(Array.names,user_input)){say=“Hello user”}
这不是我所期望的,但是非常感谢!这有助于我的发展。愿原力与你同在:D
user_input = "";
answer = "";

Array.greeting = ["hi", "hello"]
Array.names = ["john","james"]

user_input = document.getElementById('user_input').value.toLowerCase();
document.getElementById('text_input').innerHTML = user_input;

documnet.getElementById('say_something').innerHTML = say;
if(""){}
else{}
if(Array.greeting.includes(user_input) > 0){
    say = "Hello";
}
if(Array.names.includes(user_input) > 0){
    say = "User";
}
var check = function(arr, s) {
  for (var i = 0; i < arr.length; i++) {
    if (s.indexOf(arr[i]) > -1) {
      return true;
    }
  }
  return false;
}