javascript 如何检查在字符串中找到的数组中的元素?

lymnna71  于 2023-01-11  发布在  Java
关注(0)|答案(4)|浏览(174)

我想循环遍历一个短语数组,将其中的元素与给定的字符串进行比较,然后创建一个新的公共元素数组。我对Javascript还是个新手。我从研究中得到的答案并不能满足我的特定需求。
我打算遍历myArray并检查其中在userInput中找到的元素,然后将它们作为一个新数组存储在intersect变量中。[“morning”,“good”,“good morning”],但我似乎不知道如何正确地去做。下面是我尝试过的代码。就像我说的,我对Javascript还是个新手。

var userInput, myArray, intersect;
userInput "hey good morning bro";
myArray = ["today", "morning", "good", "good morning"];

for (i=0;i<myArray.length;i++){
intersect = userInput.includes(i);
document.write(intersect);
}
}
2admgd59

2admgd591#

使用filter方法循环myArray。此方法是每个数组上都有的工具包的一部分。
filter方法循环遍历数组中的每一项,在本例中是"today""morning"等字符串。它将检查每个字符串是否在userInput字符串中找到。如果找到,则返回true。意味着该单词可以是新数组的一部分。如果结果是false,则该单词将不包括在新数组中。

const userInput = "hey good morning bro";
const myArray = ["today", "morning", "good", "good morning"];

const intersect = myArray.filter(word => 
  userInput.includes(word)  
);
  
console.log(intersect);
6tr1vspr

6tr1vspr2#

当前您检查userInputs是否包含整数(索引)。您必须按如下所示进行更改:

var userInput, myArray, intersect;
userInput = "hey good morning bro";
myArray = ["today", "morning", "good", "good morning"];

for (i=0; i<myArray.length; i++)
{
  intersect = userInput.includes(myArray[i]);
  document.write(intersect + ' => ' + myArray[i] + " #</br> ");
}
6yt4nkrj

6yt4nkrj3#

使用分隔符““拆分用户输入。

const userInput =  "hey good morning bro";
const myArray = ["today", "morning", "good", "good morning"];

let intersection = [];
const stringParts = userInput.split(" ");

for (let i = 0; i < myArray.length; i++) {
     if (stringParts.includes(myArray[i])) {
          intersection.push(myArray[i]);
     }
}

console.log(intersection);

注意,输出将出现在控制台中,但是如果需要,您可以更改console.log(尽管我建议将console.log用于测试)。
另外,不要使用var。对于不会改变的内容使用const,对于其他内容使用let。

noj0wjuj

noj0wjuj4#

尝试以下代码来获取公共元素的数组:

var userInput = "hey good morning bro";
var myArray = ["today", "morning", "good", "good morning"];
var intersect = [];

$.each(myArray, function(index, val) {
    if(userInput.indexOf(val) != -1){
        intersect.push(val);
    }
});

console.log(intersect);

相关问题