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(fixedaraylenTheevery()
方法测试数组中的所有元素是否通过所提供函数实现的测试。它返回一个布尔值。如果调用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);
}
如果你在回答中添加一些解释,可能会出现重复的情况。上次有人使用数字数组是什么时候?