【问题标题】:perform test on JS array to see if it contains another array of values [duplicate]对 JS 数组执行测试以查看它是否包含另一个值数组 [重复]
【发布时间】:2019-02-25 07:16:46
【问题描述】:

我在这个网站上找到了一些解决方案,还有其他一些解决方案,例如 Array.prototype.includes() 和 Array.prototype.indexOf() 和 jQuery.inArray()。

这些解决方案中的每一个都非常适合检查单个值 'x' 是否在数组 ['x','y','z'] 中。

我的问题是:如何测试以查看数组中是否存在多个值。也就是说,数组X在数组Y中吗?

例如:

['a','e','f']['a','b','c','d','e','f','g'] 中吗?结果:是的。

['a','e','z']['a','b','c','d','e','f','g'] 中吗?结果:错误。

编辑: 理想情况下,该解决方案可以追溯到 IE 10。

【问题讨论】:

    标签: javascript arrays


    【解决方案1】:

    这相当简洁,可以满足您的需求:

    const array1 = ['a','b','c','d','e','f','g'];
    const array2 = ['a','e','f'];
    console.log(array2.every(currentValue => array1.includes(currentValue)));

    【讨论】:

    【解决方案2】:

    前 3 行之后的所有内容仅用于测试并展示如何使用此功能。一种是真的,另一种是假的。

    Array.prototype.containsAll = function(values) {
      return values.every((val) => this.indexOf(val) !== -1);
    }
    
    var array = ['a','b','c','d','e','f','g'];
    var testA = ['a', 'e', 'f'];
    var testB = ['a', 'e', 'z'];
    var testC = ['x', 'a'];
    
    var res = array.containsAll(testA);
    console.log(res);
    
    var res = array.containsAll(testB);
    console.log(res);
    
    var res = array.containsAll(testC);
    console.log(res);

    为处理您的问题的数组原型添加了一个函数。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-04
    • 2020-11-29
    • 1970-01-01
    • 2021-06-23
    • 1970-01-01
    • 1970-01-01
    • 2021-06-06
    • 1970-01-01
    相关资源
    最近更新 更多