javascript - 在两个 JavaScript 数组中查找元素并将每个数组存储为不同的元素

标签 javascript arrays

我有来自两个数组的联系人列表。有些元素可能相同,但我需要知道哪个数组具有唯一值并将这些唯一值保留在该数组中。换句话说,我想跟踪它们来自哪个数组的唯一值。这是我到目前为止的意大利面条代码:

for (var i = 0; i < emailNews.length; i++)
        {
            for (var j = 0; j < emailHealth.length; j++) 
                {
                    if (emailNews[i] == emailHealth[j]) {
                        $('#userList').append(descriptionNews[i] + '<td><span style="margin-right: 5px;">Advanced</span><input type="checkbox" name="advanced" id="advancedCheck" checked></td><td><button type="button" class="btn btn-danger btn-sm btn-user-delete" id="' + userLogin + '" >Delete</button></td></tr>');
                   } else {
                       console.log(descriptionHealth[j]);
                       $("#userList").append(descriptionHealth[j] + '<td><button type="button" class="btn btn-danger btn-sm" id="deleteEnd">Delete</button></td></tr>');
                    }
                }

        }

最佳答案

您的描述有点令人困惑,但据我了解,您有两个数组,并且您希望知道每个数组中的唯一项目(不在另一个数组中的项目)。

因此,给定数组 ab,您可以创建两个仅包含唯一数组的新数组。

// unique--v---------------------v
var a = ["foo", "bar", "baz", "zing"];

// unique--v
var b = ["oof", "bar", "baz"];

var unique_a = a.filter(item => !b.includes(item));
var unique_b = b.filter(item => !a.includes(item));

console.log("Unique in `a`: %s", JSON.stringify(unique_a));
console.log("Unique in `b`: %s", JSON.stringify(unique_b));

现在您有了唯一的值,并且知道它们来自哪个数组,您可以使用这些值执行您需要的操作。

<小时/>

如果您想在循环时执行此操作,那也同样简单。只需获取另一个数组并使用当前项对其调用 .includes() 即可。

a.forEach(item => {
  if (b.includes(item)) {
    // not unique...
  } else {
    // unique
  }
});
<小时/>

如果您需要处理所有项目,请以两种方式分离出唯一的项目,然后还处理共享的项目,创建所有项目的Set,然后进行迭代。

for (const item of new Set([...a, ...b])) {
  var in_a = a.includes(item);
  var in_b = b.includes(item);
  if (in_a && in_b) {
    // not unique
  } else if (in_a) {
    // unique to 'a'
  } else {
    // unique to 'b'
  }
}

关于javascript - 在两个 JavaScript 数组中查找元素并将每个数组存储为不同的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46495551/

相关文章:

java - 整数数组如何成为引用类型?

javascript - 为什么 2 == [2] 在 JavaScript 中?

java按可指定的属性对对象列表进行排序

javascript - 在声明了clearInterval之后如何重新声明setInterval?

javascript - head 中的重定位是否会停止页面其余部分的加载?

javascript - 遍历每个 div 并获取其 html 内容

javascript - 带对象的for循环

javascript - 如何给div添加上下滑动效果?

javascript - 如何获取表格给定行的所有列

python - 如何为存储在数组中的函数提供常量和动态参数