Я хочу сравнить один массив с другим:
array1 = ['billy', 'bob', 'paul'];
array2 = ['billy', 'michael', 'bob'];
Я хочу определить, содержит ли массив2 имя, которое не найдено в массиве 1.
массив2 может быть длиннее или корочечем массив1, другими словами, массив2 может иметь пропущенные имена или иметь больше имен, чем массив1, но массив2 не может иметь РАЗНОЕ имя по сравнению с массивом 1.
До сих пор я могу определить, является ли массив2 длиннее массива 1Если это так, то, очевидно, он добавляет имена и поэтому недопустим:
if (array1.length < array2.length) {
console.log('no');
}
, но это не так точно, как должно быть (если оба массива имеют одинаковое количество значений, этовозвращает true, даже если отдельные значения не коррелируют).
см. следующие примеры сценариев:
array1 = ['billy', 'bob', 'paul'];
array2 = ['billy', 'b', 'paul']; //should not be valid
array1 = ['billy', 'b', 'paul'];
array2 = ['billy', 'bob', 'paul']; //should not be valid
array1 = ['billy', 'bob', 'paul'];
array2 = ['billy', 'michael', 'paul']; //should not be valid
array1 = ['billy', 'bob', 'paul'];
array2 = ['billy', 'bob', 'paul', 'michael']; //should not be valid
array1 = ['billy', 'bob', 'paul'];
array2 = ['billy', 'bob']; //this is valid
array1 = ['billy', 'bob', 'paul'];
array2 = ['billy']; //this is valid
array1 = ['bob', 'bob', 'billy', 'paul'];
array2 = ['paul', 'bob', 'bob', 'bob']; //this IS NOT valid
array1 = ['bob', 'bob', 'billy', 'paul'];
array2 = ['paul', 'bob', 'bob']; //this is valid
Я предполагаю, что должен использовать .every (), но янеуверен в том, как реализовать это при сравнении двух массивов, так как во всех примерах я нахожу тестовые значения одного массива против одного значения.
update: массив 2 не может иметь больше экземпляров определенного имени, чем массив 1,но его может быть меньше.