如何根据数组中的元素检查字符串
how to check a string against elements in an array
我正在使用Twitter流API。我目前正在使用跟随和跟踪参数,但 API 将它们与 OR 组合在一起,我想将它们与 AND 组合在一起。从逻辑上讲,执行此操作的唯一方法是手动检查推文是否在我的用户 ID 数组中包含要关注的用户 ID#,并且推文文本是否包含要跟踪的关键字数组中的关键字。
我已经将推文对象和推文.文本对象转换为JSON字符串,如下所示:
var tweetText = JSON.stringify(tweet.text);
var tweetObject = JSON.stringify(tweet);
我想要这样的 if 语句:
if tweetObject == a value in tracked ids array && tweetText == a value in tracked words array
do the rest of my code
我怎样才能做到这一点?我尝试使用 .indexOf(),但这只需要一个参数,所以我可以说:
if(tweetObject.indexOf("12345678") > -1 && tweetText.indexOf("spotify") > -1) {
do my code
}
但这不是我想要的,我希望它通过数组并查看 tweetObject 和 tweetText 是否包含任何数组元素,如果是,则代码
这是我所拥有的:
// start twitter
t.stream(
"statuses/filter",
{follow: trackedHandles, track: trackedWords, lang: "en" },
function(stream) {
stream.on('data', function(tweet) {
//convert tweet.text& tweet.entities into two strings
var tweetText = JSON.stringify(tweet.text);
var userName = JSON.stringify(tweet.entities);
var tweetObject = JSON.stringify(tweet);
var flag = false;
for (var x = 0; x < trackedHandles.length; x++) {
//console.log(trackedHandles[x].toString());
var searchParam = tweetObject.indexOf(trackedHandles[x].toString());
if(searchParam != -1) {
flag = true;
//console.log(searchParam);
//console.log(trackedHandles[x].toString());
//incriment the keywords, and store the keywords as keys in redis (as they appear in feed)
for (var i = 0; i < trackedWords.length; i++) {
if(tweetText.indexOf(trackedWords[i]) > - 1) {
// incriments added value to the word
console.log(trackedWords[i]);
redisClient.incr(trackedWords[i]);
}
}
//if tweetText does not contains "RT" & "@", print tweet to console.
if(tweetText.indexOf("RT") == -1 && tweetText.indexOf("@") == -1) {
//console.log(tweetText + "'r'n ");
//console.log(screen_name + "'r'n ");
//console.log(tweet);
}
}
}
});
}
);
请帮助大家,这是我本科学位的高级项目。我拥有它自己完成的大部分应用程序,我只需要这件,因为我试图完成的是仅根据特定关键字流式传输来自特定用户的推文。如果您能想到更合适的标题,请告诉我。提前感谢任何帮助!
使用 for 或 forEach 循环
var tweetObjArr= [1,2,3,4,5];
var tweetIds = [7,3]
var flag = false;
for (var i = 0; i < tweetIds .length; i++) {
if(tweetObjArr.indexOf(tweetIds [i]) != -1) {
flag=true;
break;
}
}
您可能想要jQuery.inArray
这样的函数
if(jQuery.inArray("12345678", tweetObject)!==-1)
相关文章:
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 用于检查数组中是否存在元素的javascript自定义方法
- 检查元素是如何获得焦点的
- 如何检查元素的内容是否为空,如果为空,请在jquery中删除该元素
- 在验证器中添加自定义规则以检查<ul>具有元素
- 如何检查元素是否在iframe中
- 使用 jQuery 检查元素的数量
- 使用js/jQuery检查对象(而不是元素)是否真的存在
- 检查元素是否将状态从隐藏更改为可见
- 我如何为列出的选项卡元素编写一个Protractor测试,它会检查它是否's是否处于活动状态
- JS触发器值检查在文档加载后添加到页面的元素在加载时更改AND
- 如何设置第一个子元素's的单选按钮已在轨道上检查4
- 检查元素hasClass是否添加了AJAX
- 如何根据数组中的元素检查字符串
- jQuery根据类中的其他元素检查每个元素
- Javascript合并两个函数,用另一个元素检查节点类型
- 不能得到ajax得到显示在页面,但可以看到在谷歌元素检查器
- 使用inspect元素检查是否修改了代码
- 模拟webkit的元素检查器
- 如何使用元素检查器在网站上运行我自己的事件处理Javascript代码