比较用户数组字符串以列出空用户

时间:2015-12-16 21:52:12

标签: javascript arrays

我想要一种比较两个数组的简单方法。一个数组有一个电子邮件列表,另一个数组是完成表单的电子邮件列表。我想返回一份尚未填写表格的人员名单。这是我的功能,但效果很慢。

  function findMissingUsers() {
   var sheet = getSheet();    
   users = [array of all emails]; 
   completedUsers = [array of emails who completed form];

   users.forEach(function (row) {
    completedUsers.forEach(function (user) {
     if(row.Email != user.Username) {
      console.log(row);
     }
    });
   });
  }

试图找到一种更有效的方法。

3 个答案:

答案 0 :(得分:1)

怎么样:

completedUsers.filter(function(n) {
    return users.indexOf(n) != -1
});

来自here

答案 1 :(得分:0)

您可以使用例如lodash库和_.difference函数。详情here

答案 2 :(得分:0)

你可以这样做:

var incompletedUsers = users.filter(function(user){
    return completedUsers.every(function(completedUser){
        return user.Email !== completedUser.Username;
    });
});