是否有一个loadash函数可以比较两个数组,并且仅当arr1中存在所有来自arr2的值时才返回

我必须比较两个数组,如果只有数组1包含数组2的所有值,则返回true。对此合适的loadash函数是什么?


let arr1 = [1, 2, 3, 4]

let arr2 = [1, 2] 

let arr3 = [1, 5] 

比较arr1和arr2应该返回true比较arr1和arr3应该返回false


侃侃尔雅
浏览 240回答 3
3回答

月关宝盒

您可以使用every:let arr1 = [1, 2, 3, 4];let arr2 = [1, 2];let arr3 = [1, 5];const allElements = (a1, a2) => a2.every(e => a1.includes(e));console.log(allElements(arr1, arr2));console.log(allElements(arr1, arr3));

慕妹3242003

仅出于完整性考虑,您可以选择Set并与进行比较Set#has。let arr1 = [1, 2, 3, 4],    arr2 = [1, 2],    arr3 = [1, 5],    base = new Set(arr1);console.log(arr2.every(Set.prototype.has, base));console.log(arr3.every(Set.prototype.has, base));

慕哥9229398

这里不需要loadash,只需将本机JavaScriptArray#every方法与Array#includesmethod一起使用function compareArray(arr1, arr2) {  return arr2.every(v => arr1.includes(v))}let arr1 = [1, 2, 3, 4]let arr2 = [1, 2]let arr3 = [1, 5]console.log(compareArray(arr1, arr2))console.log(compareArray(arr1, arr3))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript