遍历数组并检查其值

穆罕默德·阿雷布·西迪基(Mohammad Areeb Siddiqui)

我所做的是,首先我已经用jQuery函数解析了它们,$.parseJSON()所以现在我有2个数组,其中包含3个对象。我想做的是我想同时遍历两个数组,以便可以Post_ID在两个数组的循环中检查当前对象s,如果它们相等或不相等,然后发现在Post_ID不存在已经存在或存在不匹配,然后我想要做的事。

这是我所做的:

var posts = <? php echo $posts; ?> ;
setInterval(function () {
    $.get("admin/post/get_new_posts.php", {
        userId: <? php echo User::GetUserID($_SESSION["username"]); ?>
    }, function (data) {
        data = $.parseJSON(data);
        for (var i = 0; i < data.length; i++) {
            for (var j = 0; j < posts.length; j++) {
                if (posts[j].Post_ID != data[i].Post_ID) {
                    //do something...
                } else {

                }
            }
        }
    });
}, 10000);

posts变量具有其值,我可以通过将其登录到控制台来确定它的值。现在,这里所发生的是,一个GET请求被发送,如果的POST_ID符合检查每十秒钟posts可变对象不等于Post_ID对的data变量,然后做了什么事。但是事实并非如此。条件总是正确的。

是的,这是我的对象。第一个是posts变量,第二个是data变量。

帖子和数据变量视图

是否知道如何在变量或数组中循环并在循环时同时检查属性?

保罗·鲁布

您正在将中的每个条目与posts中的每个条目进行比较data那些最不匹配-posts[0]将不匹配data[1]data[2]等等。

听起来您想查看每个列表的对应成员(posts[0]vsdata[0]等)。

在这种情况下,您需要一个循环,而不是两个。

// find the longest array's length
var maxi = Math.max(posts.length, data.length, 0);

for ( var i = 0; i < maxi; ++i )
{
  if (i >= posts.length)
  {
    // an entry in data, but not posts
  }
  else if (i >= data.length)
  {
    // an entry in posts, but not data
  }
  else if (data[i].Post_ID != posts[i].Post_ID)
  {
    // mismatched IDs
  }
  else
  {
    // matched IDs
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章