У меня есть следующий код, который сравнивает массив1 с массивом2, чтобы определить, не содержит ли массив1 значение из массива2:
var array1 = ['bob', 'george'];
var array2 = ['bob', 'george', 'frank'];
var isMissing = false;
console.log(missing(array1, array2));
function missing(a,b) {
if (a > b) {
var length = a.length;
} else if (b > a) {
var length = b.length;
} else {
var length = a.length;
}
for (var i = 0; i < length; i++ ) {
if (b.indexOf(a[i]) == -1) {
isMissing = true;
} else {
isMissing = false;
}
if (isMissing == 'true') {
break;
}
}
return isMissing;
}
Выше не всегда работает, хотя.Ниже приведена таблица сценариев и результатов в сравнении с ожидаемыми:
var array1 = ['bob', 'george'];
var array2 = ['bob', 'george', 'frank']; // result:true, expected: true
var array1 = ['bob', 'frank'];
var array2 = ['bob', 'george', 'frank']; // result:true, expected: true
var array1 = ['frank', 'george'];
var array2 = ['bob', 'george', 'frank']; // result:true, expected: true
var array1 = ['frank', 'bob', 'george'];
var array2 = ['bob', 'george', 'frank']; // result:false, expected: false
var array1 = ['frank', 'george', 'sue', 'frank'];
var array2 = ['bob', 'george', 'frank']; // result:false, expected: true
var array1 = ['frank', 'george', 'sue', 'frank'];
var array2 = ['bob', 'george', 'frank', 'janet']; // result:false, expected: true
var array1 = ['frank', 'george'];
var array2 = ['frank', 'frank']; // result: false, expected: true
Я не уверен, в чем проблема ...
Я прочитал эту тему но это не приносит мне никакого плода, так как мне не нужно знать, какой элемент отсутствует, мне просто нужно знать, отсутствует ли какой-либо один элемент.
Пожалуйста, никаких внешних библиотек.спасибо.