判断数组a是否包含数组b
let a = [2,3,4,5,6,7,8,9,10]
let b = [2,3]
let c = [1]
a中应该是包含b的,但a不包含c
从网上找了几个方法都是转成字符串查找,这样 10中含有1就会提示包含,显然不是我想要的结果,请问这种该怎么写呢?
判断数组a是否包含数组b
let a = [2,3,4,5,6,7,8,9,10]
let b = [2,3]
let c = [1]
a中应该是包含b的,但a不包含c
从网上找了几个方法都是转成字符串查找,这样 10中含有1就会提示包含,显然不是我想要的结果,请问这种该怎么写呢?
let a = [2, 3, 4, 5, 6, 7, 8, 9, 10];
let b = [2, 3];
let c = [1];
function isIncludes(parentArr, childrenArr) {
let tempArrLength = Array.from(new Set([...parentArr, ...childrenArr])).length
return tempArrLength === parentArr.length || tempArrLength === childrenArr.length
}
console.log(isIncludes(a, c)) // false
console.log(isIncludes(a, b)) // true
var a = [2,3,4,5,6,7,8,9,10]
var b = [2,3]
var c = [1]
var findOne = function (haystack, arr) {
return arr.some(function (v) {
return haystack.indexOf(v) >= 0;
});
};
验证结果如下:
`
let a = [1,2,3,4,5,6];
let b = [1,2,3,4,5,6,7];
/**
* a是否被b包含
* 分析
* 1.b的长度小于a或者a的长度大于b,那么a肯定不会被b包含
* 2.获取a的长度a_length
* 3.获取a与b的并集c并去重处理,获取c的长度c_length,如果c_length == a_length ,则a被b包含
* @param {Array} a //数组a
* @param {Array} b //数组b
*/
function isPart (a, b) {
if(b.length < a.length || a.length > b.length) {
return false;
} else {
let c = b.filter(item => a.includes(item));
if(a.length == c.length) {
console.log('true');
} else {
console.log('false');
}
}
}
isPart(a,b);
`
for(var i = 0; i< b.length; i++) {
if(a.indexOf(b[i]) > -1 ){
alert('存在')
} else {
alert('不存在')
}
}
var a = [2,3,4,5,6,7,8,9,10]
var b = [2,3]
a.find((item, index, arr)=>arr.slice(index, index + b.length).toString() === b.toString()) !== undefined
10 回答11.5k 阅读
4 回答3.4k 阅读✓ 已解决
2 回答3k 阅读✓ 已解决
3 回答2.6k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
2 回答2.1k 阅读✓ 已解决
4 回答2.1k 阅读✓ 已解决