gpt4 book ai didi

javascript - 如何检查 Javascript 数组中是否存在多个值

转载 作者:IT王子 更新时间:2023-10-29 03:12:53 25 4
gpt4 key购买 nike

所以,我正在使用 Jquery 并有两个数组,它们都有多个值,我想检查第一个数组中的所有值是否存在于第二个数组中。

比如例子1...

Array A contains the following values

34, 78, 89

Array B contains the following values

78, 67, 34, 99, 56, 89

This would return true

...示例 2:

Array A contains the following values

34, 78, 89

Array B contains the following values

78, 67, 99, 56, 89

This would return false

...示例 3:

Array A contains the following values

34, 78, 89

Array B contains the following values

78, 89

This would return false

到目前为止,我已经尝试通过以下方式解决这个问题:

  1. 扩展Jquery with a custom 'compare' method比较两个数组。问题是这仅在数组相同时返回 true 并且正如您从示例 1 中看到的那样我希望它返回 true 即使它们不相同但至少包含值
  2. 使用Jquerys .inArray function ,但这只会检查数组中的一个值,而不是多个值。

任何人都可以对此提出任何建议。

最佳答案

原生 JavaScript 解决方案

var success = array_a.every(function(val) {
return array_b.indexOf(val) !== -1;
});

如果您支持旧版浏览器(包括 IE8),则需要为 everyindexOf 打上兼容性补丁。


完整的 jQuery 解决方案

var success = $.grep(array_a, function(v,i) {
return $.inArray(v, array_b) !== -1;
}).length === array_a.length;

使用$.grep$.inArray .


ES2015 解决方案

可以使用 ES2015 的箭头函数语法及其 .includes() 方法缩短上面的原生解决方案:

let success = array_a.every((val) => array_b.includes(val))

关于javascript - 如何检查 Javascript 数组中是否存在多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9204283/

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