Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查数组是否包含其他数组的所有元素_Javascript_Arrays - Fatal编程技术网

Javascript 检查数组是否包含其他数组的所有元素

Javascript 检查数组是否包含其他数组的所有元素,javascript,arrays,Javascript,Arrays,我想要一个返回true的函数,当且仅当给定数组包含给定“目标”数组的所有元素时。具体如下 const target = [ 1, 2, 3, ]; const array1 = [ 1, 2, 3, ]; // true const array2 = [ 1, 2, 3, 4, ]; // true const array3 = [ 1, 2, ]; // false 如何实现上述结果?您可以使用.each()和.includes()方法: 让数组1=[1,2,3],

我想要一个返回
true
的函数,当且仅当给定数组包含给定“目标”数组的所有元素时。具体如下

const target = [ 1, 2, 3,    ];
const array1 = [ 1, 2, 3,    ]; // true
const array2 = [ 1, 2, 3, 4, ]; // true
const array3 = [ 1, 2,       ]; // false
如何实现上述结果?

您可以使用
.each()
.includes()
方法:

让数组1=[1,2,3],
array2=[1,2,3,4],
数组3=[1,2];
让checker=(arr,target)=>target.every(v=>arr.includes(v));
控制台日志(检查器(array2,array1));
控制台日志(检查程序(array3,array1))您可以尝试:

every()
方法测试数组中的所有元素是否通过了所提供函数实现的测试

以及:

includes()
方法确定数组是否包含特定元素,并根据需要返回true或false

var mainArr=[1,2,3];
函数isTrue(arr,arr2){
返回arr.every(i=>arr2.includes(i));
}
控制台日志(isTrue(mainArr[1,2,3]);
控制台日志(isTrue(mainArr[1,2,3,4]);

console.log(isTrue(mainArr[1,2])如果您使用的是ES5,那么您可以简单地执行此操作

targetArray =[1,2,3]; 
array1 = [1,2,3]; //return true
array2 = [1,2,3,4]; //return true
array3 = [1,2] //return false

console.log(targetArray.every(function(val) { return array1.indexOf(val) >= 0; })); //true
 console.log(targetArray.every(function(val) { return array2.indexOf(val) >= 0; })); // true
 console.log(targetArray.every(function(val) { return array3.indexOf(val) >= 0; }));// false

我使用的是纯Javascript

function checkElementsinArray(fixedArray,inputArray)
{
    var fixedArraylen = fixedArray.length;
    var inputArraylen = inputArray.length;
    if(fixedArraylen<=inputArraylen)
    {
        for(var i=0;i<fixedArraylen;i++)
        {
            if(!(inputArray.indexOf(fixedArray[i])>=0))
            {
                return false;
            }
        }
    }
    else
    {
        return false;
    }
    return true;
}

console.log(checkElementsinArray([1,2,3], [1,2,3]));
console.log(checkElementsinArray([1,2,3], [1,2,3,4]));
console.log(checkElementsinArray([1,2,3], [1,2]));
函数checkElementsinArray(固定阵列、输入阵列)
{
var fixedaraylen=fixedaray.length;
var inputArraylen=inputArray.length;
if(fixedaraylenThe
every()
方法测试数组中的所有元素是否通过所提供函数实现的测试。它返回一个布尔值。如果调用
every()
在原始数组上,并向其提供一个函数,用于检查原始数组中的每个元素是否包含在另一个数组中,您将得到答案。因此:

const ar1 = ['a', 'b'];
const ar2 = ['c', 'd', 'a', 'z', 'g', 'b'];

if(ar1.every(r => ar2.includes(r))){
  console.log('Found all of', ar1, 'in', ar2);
}else{
  console.log('Did not find all of', ar1, 'in', ar2);
}

如果你在回答中添加一些解释,可能会出现重复的情况。上次有人使用数字数组是什么时候?