javaScript找出两个数组之中不同的元素

在JavaScript中,我们可以使用以下方法找到两个数组中不同的元素:

1. 创建一个函数,将两个数组作为参数传递进去。

2. 在函数内部,创建一个新的空数组,用于存储不同的元素。

3. 使用for循环遍历第一个数组,并使用indexOf()方法检查第二个数组中是否存在相同的元素。

4. 如果第二个数组中不存在当前元素,则将该元素添加到新的数组中。

5. 同样地,使用for循环遍历第二个数组,并使用indexOf()方法检查第一个数组中是否存在相同的元素。

6. 如果第一个数组中不存在当前元素,则将该元素添加到新的数组中。

7. 最后,返回新的数组作为结果,其中包含两个数组中不同的元素。

以下是具体的代码实现:

function findDifferentElements(arr1, arr2) {
  var differentElements = [];

  for (var i = 0; i < arr1.length; i++) {
    if (arr2.indexOf(arr1[i]) === -1) {
      differentElements.push(arr1[i]);
    }
  }

  for (var j = 0; j < arr2.length; j++) {
    if (arr1.indexOf(arr2[j]) === -1) {
      differentElements.push(arr2[j]);
    }
  }

  return differentElements;
}

// 示例用法
var array1 = [1, 2, 3, 4, 5];
var array2 = [3, 4, 5, 6, 7];

var result = findDifferentElements(array1, array2);
console.log(result); // 输出 [1, 2, 6, 7]



 

通过上述代码,我们可以找到两个数组中的不同元素,并将它们存储在一个新的数组中。最后,我们可以通过打印新数组来查看结果。在这个示例中,结果为 [1, 2, 6, 7]。

 // 差集 数组1  相对于数组2  所没有的

// 示例用法
var array1 = [1, 2, 3, 4, 5];
var array2 = [3, 4, 5, 6, 7];
                const diff = array2.filter(
                  (item) => !new Set(array1).has(item)
                );
console.log(result); // 输出 [1, 2, 6, 7]

 找出第一个数组[{id:1},{id:2},{id:3},{id:4}]在第二个数组d:1},{id:6},{id:3},{id:5}]不存在的元素

const array1 = [{id: 1}, {id: 2}, {id: 3}, {id: 4}];
const array2 = [{id: 1}, {id: 6}, {id: 3}, {id: 5}];

// Find objects in array1 that have ids not in array2
const elementsNotInArray2 = array1.filter(obj1 => !array2.some(obj2 => obj2.id === obj1.id));

console.log(elementsNotInArray2); // Output: [{id: 2}, {id: 4}]

 

posted @ 2024-01-24 09:33  黄橙  阅读(1847)  评论(0编辑  收藏  举报