Javascript код, который показывает, что не равно - PullRequest
1 голос
/ 08 июня 2019

Этот код показывает, являются ли два массива объектов истинными или нет, и это хорошо ... как управлять этим кодом, чтобы регистрировать, какой ответ не равен?

Модель массивов, arrayA - это массив ответов пользователявопросы, а массив B - это правильные ответы

arrayA: { id: number; answer: number }[] = [];
arrayB: { id: number; answer: number }[] = [];

Функция нажатия:

arraysEqual(arrayA, arrayB)
arraysEqual = (a1, a2) =>
    a1.length === a2.length &&
    a1.every((o, idx) => this.objectsEqual(o, a2[idx]));

  objectsEqual = (o1, o2) =>
    typeof o1 === "object" && Object.keys(o1).length > 0
      ? Object.keys(o1).length === Object.keys(o2).length &&
        Object.keys(o1).every(p => this.objectsEqual(o1[p], o2[p]))
      : o1 === o2;

1 Ответ

0 голосов
/ 08 июня 2019

А как насчет функции, которая возвращает массив индексов, которыми отличаются a1 и a2?

Что-то вроде:

function arraysUnequal(a1, a2)
{
   let result = [];
   let maxindex = (a1.length > a2.length) ? a1.length : a2.length;
   for (let i = 0; i < maxindex; i++)
   {
      if (!objectsEqual(a1[i]||{}, a2[i]||{})) { result.push(i) }
   }
   return result;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...