为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

侃侃尔雅 2021-04-08 13:15:34
我必须比较两个数组,如果只有数组1包含数组2的所有值,则返回true。对此合适的loadash函数是什么?let arr1 = [1, 2, 3, 4]let arr2 = [1, 2] let arr3 = [1, 5] 比较arr1和arr2应该返回true比较arr1和arr3应该返回false
查看完整描述

3 回答

?
月关宝盒

TA贡献1772条经验 获得超5个赞

您可以使用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));


查看完整回答
反对 回复 2021-04-22
?
慕妹3242003

TA贡献1824条经验 获得超6个赞

仅出于完整性考虑,您可以选择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));


查看完整回答
反对 回复 2021-04-22
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

这里不需要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))


查看完整回答
反对 回复 2021-04-22
  • 3 回答
  • 0 关注
  • 239 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信