Сравнение значения двух массивов и возврат только разницы, если значение удалено, а не добавлено - PullRequest
0 голосов
/ 19 июня 2020

Я работаю над проектом с массивом значений, которые могут меняться каждые 30 секунд. Мне нужно сравнивать первое array с текущим array значений каждый раз, когда это запускается, и возвращать разницу между значениями ТОЛЬКО, если значение удалено.

Например, если array1 = [12, 14, 16] и array2 = [12, 16, 18], то мне нужно вернуть 14 и что-то с ним сделать. Как лучше всего выполнить sh это?

Это мой текущий код, но он возвращает любую разницу между двумя массивами:

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);
}

1 Ответ

0 голосов
/ 19 июня 2020

Попробуйте следующее:


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 ]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...