我认为我的问题相当简单,但我对Javascript不是很有经验。我想要做的是拉取页面的源代码并将其全部添加到变量中:
var sourcecode = document.documentElement.innerHTML;
然后我有一系列术语,我想搜索该变量:
var array = ['Huskers','Redskins','Texans','Rockets'];
我想为sourcecode
变量中找不到的任何数组元素分配0,为任何变量分配1。因此,当搜索完成时,每个数组元素将由一个等于1或0的变量表示。任何人都可以给我一个关于我应该怎么做的提示?
谢谢!
答案 0 :(得分:3)
有点神秘但做你需要的东西:
var source = 'lorem hello foo bar world';
var words = ['hello','red','world','green'];
words = words.map(function(w){ return +!!~source.indexOf(w) });
console.log(words); //=> [1, 0, 1, 0]
+!!~
强制转换indexOf
返回的值的多个布尔表示形式,与:
return source.indexOf(w) == -1 ? 0 : 1;
但有点短。
请注意,indexOf
也匹配字符串中的字符串,如果要匹配整个单词,可以将正则表达式与字边界\b
一起使用:
words = words.map(function(w) {
return +new RegExp('\\b'+ w +'\\b','gi').test(source);
});
答案 1 :(得分:1)
如果要在数组中查找元素,可以使用jquery $ .inArray()
$(document).ready(function() {
var array = ['Huskers','Redskins','Texans','Rockets'];
alert($.inArray('Redskins', array));
});
如果找到,则返回数组内元素的索引号。如果未找到该元素,则返回-1