Javascript 是否有方法检查数组中的多个值?
我使用indexOf检查JSON twitter提要中的某些字符串。我希望能够让多个字符串触发同一事件 我编写了一个开关,如果您只在数组中查找单个属性,但找不到执行此操作的方法,它就可以工作 我的第一个想法是尝试Javascript 是否有方法检查数组中的多个值?,javascript,arrays,switch-statement,indexof,Javascript,Arrays,Switch Statement,Indexof,我使用indexOf检查JSON twitter提要中的某些字符串。我希望能够让多个字符串触发同一事件 我编写了一个开关,如果您只在数组中查找单个属性,但找不到执行此操作的方法,它就可以工作 我的第一个想法是尝试 switch(true) { case tweetContent.indexOf(Happy[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) !== -1: // do a thing break; 你可以在
switch(true) {
case tweetContent.indexOf(Happy[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) !== -1:
// do a thing
break;
你可以在下面的上下文中看到。我在这里真的迷路了
$.getJSON("tweets_JSON.php?count=5").done(function(json) {
console.log(json[0])
var Happy = ["hashtag1", "#hashtag2", "#hashtag3"];
var Sad = ["#hashtag4", "#hashtag5", "#hashtag6"];
var AgencyLife = ["#hashtag7", "#hashtag8", "#hashtag9"];
var tweetContent = json[0].text;
// Searchs text property of first tweet in feed for triggers
switch(true) {
case tweetContent.indexOf(Happy[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) !== -1:
console.log("horray!");
break;
case tweetContent.indexOf() !== -1:
console.log("boo!");
break;
case tweetContent.indexOf() !== -1:
console.log("boo!");
break;
case tweetContent.indexOf() !== -1:
console.log("boo!");
break;
case tweetContent.indexOf() !== -1:
console.log("boo!");
break;
default:
console.log("No Trigger Found. Light State unchanged.");
break;
}
});
我不知道你到底想在这里做什么,但我可以给你一个想法 是否有方法检查数组中的多个值 您可以将数组连接到长字符串,并使用RegExp测试值:
var arr = ["hello", "good", "day", "twitter"];
var joindArr = arr.join(); // Or use delimiter arr.join('*’)
joindArr.match(/twitter|hello/g); // Return value will be array of matches
如果只需要知道数组中是否存在一个值,请检查匹配数组的长度。就你而言:
case joindArr.match(/twitter|hello/g).length > 0:
您应该能够使用$.grep执行此操作
var happy_matches = $.grep(Happy, function( hashtag, i ) {
return tweetContent.indexOf("hashtag");
});
很抱歉我解释得很糟糕。基本上,我要做的是对从JSON数据中提取的字符串进行索引,然后查看它是否包含来自预定义数组的一个或多个值。有多个数组,但单个数组中的每个值都会触发同一事件。我使用的是switch语句,但我不想为每个数组中的每个数组值编写一个case,因为那将是大量的case。基本上,它归结为这个字符串是否包含来自另一个数组的任何值?如果不是,它是否包含来自其他数组的任何值?更有意义吗?是的,你可以用我上面提供的。将预定义数组转换为RegExp。现在,您可以将每个数组连接到一个长字符串,然后将这些字符串连接到一个很长的字符串,并检查是否匹配。如果至少有一个匹配项,则答案为“是”,否则任何数组中都没有预定义的值