比较两个数组的值,如果一个值被删除而不是添加,则只返回差值

Comparing the value of two arrays and only returning the difference if a value is removed, not added

我正在处理一个项目,其中包含一组可能每 30 秒更改一次的值。每次运行时,我都需要将第一个 array 与当前 array 的值进行比较,并且 return 只有在删除了某个值时才需要比较这些值之间的差异。

例如,如果 array1 = [12, 14, 16]array2 = [12, 16, 18],那么我需要 return 14 并用它做一些事情。实现此目标的最佳方法是什么?

这是我当前的代码,但return两个数组之间的任何区别:

function diffArr (array1, array2) {
  const temp = [];
  array1 = array1.toString().split(',').map(Number);
  array2 = array2.toString().split(',').map(Number);

  for (var i in array1) {
    if(!array2.includes(array1[i])) temp.push(array1[i]);
  }

  for(i in array2) {
    if(!array1.includes(array2[i])) temp.push(array2[i]);
  }

  return temp.sort((a,b) => a-b);
}

试试这个:


const array1 = [12, 14, 16, 20, 10]

const array2 = [12, 16, 18]

const diffArr = (array1, array2) => {
    const temp = array1.filter(ele => !array2.includes(ele))
    return temp.sort((a,b) => a-b);
}

console.log(diffArr(array1, array2)) // output = [ 10, 14, 20 ]