gpt4 book ai didi

javascript - 尝试检测一个数组是否缺少另一个数组的元素

转载 作者:行者123 更新时间:2023-11-28 14:21:16 26 4
gpt4 key购买 nike

我有以下代码,它将 array1 与 array2 进行比较,以确定 array1 是否缺少 array2 中的值:

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

我不确定问题是什么......

我已阅读 this thread但它没有给我带来任何成果,因为我不需要知道缺少哪个元素,我只需要知道是否缺少一个元素。

请勿使用外部库。谢谢。

最佳答案

function missing(array1, array2) {
const copy = array1.slice()
return array2.some(element => {
const index = copy.indexOf(element)
if(index >= 0) copy.splice(index, 1);
return index < 0
})
}


var array1 = ['bob', 'george'];
var array2 = ['bob', 'george', 'frank'];

console.log(missing(array1, array2))

var array1 = ['bob', 'frank'];
var array2 = ['bob', 'george', 'frank'];

console.log(missing(array1, array2))

var array1 = ['frank', 'george'];
var array2 = ['bob', 'george', 'frank'];

console.log(missing(array1, array2))

var array1 = ['frank', 'bob', 'george'];
var array2 = ['bob', 'george', 'frank'];

console.log(missing(array1, array2))

var array1 = ['frank', 'george', 'sue', 'frank'];
var array2 = ['bob', 'george', 'frank'];

console.log(missing(array1, array2))

var array1 = ['frank', 'george', 'sue', 'frank'];
var array2 = ['bob', 'george', 'frank', 'janet'];
console.log(missing(array1, array2))

var array1 = ['frank', 'george'];
var array2 = ['frank', 'frank'];
console.log(missing(array1, array2))

关于javascript - 尝试检测一个数组是否缺少另一个数组的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55152008/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com