满足某些条件时,如何获取数组的长度?

时间:2019-11-15 20:11:11

标签: javascript javascript-objects

在对API提出AJAX GET请求后,我想在满足某些条件时打印出长度。我不确定我是否做得正确。我不确定您是否可以帮助我,但我认为我会尽力而为。

该代码表示​​当UserID与LocalStorage UserID匹配时,循环遍历IsClosed为False且所有问题在最近24小时内发生的所有问题。另外,isAfter也无法正常工作。任何人都可以对此提出建议吗?

另外,如果您需要我提供任何其他信息,请告诉我。谢谢。

function showNotificationCount(isLive, userIDNum, baseURL) {
  var userIDLogin = localStorage['userIDNum'];
  var userFullName = localStorage['userName'];
  // var webMethod = isLive ? 
  $.ajax({
    type: "GET",
    url: webMethod,
    contentType: "application/json; charset=utf-8",
    dataType: "JSON",
    data: {
      userID: userIDNum
    },
    success: function(data) {
      var parsedData = JSON.parse(data);
      var twentyFourHoursAgo = moment().subtract(1, 'day');
      console.log(parsedData);
      if (userIDLogin == userIDNum) {
        $.each(parsedData, function(index, item) {

          // # of open issues
          if (item.IsClosed == false) {
            if (moment(item.CreatedDate).isAfter(twentyFourHoursAgo)) {
              var openIssues = parsedData.length;
              console.log(openIssues);
              $('.openIssueCount').html(openIssues);

            }
          }

        });
      }

    },
    error: function(xhr, status) {
      console.log(xhr.responseText);
      console.log(xhr.status);
    }
  });
}

1 个答案:

答案 0 :(得分:1)

这是一些示例代码,以显示我在评论中所说的内容。我没有断言这是正确的-完全表明了我尝试(但失败)了上面的英语描述。

var hiImAcounter;

hiImAcounter = 0;

$.each(parsedData, function(index, item) {

      // # of open issues
      if (item.IsClosed == false) {
        if (moment(item.CreatedDate).isAfter(twentyFourHoursAgo)) {
          hiImAcounter++; 
          console.log(openIssues);
          $('.openIssueCount').html(openIssues);

        }
      }

    });
// hiImAcounter now has a count
  

记住.each是异步的,因此如果您立即检查计数器,则可能未设置它-您必须使用promise来保证循环已完成。