采纳了大家的意见,各位指正;
1、如果second元素为空返回true;
2、如果second元素为4个且包含所有的first元素返回false;
3、如果second元素为1个且包含first元素的其中一个,返回false;
4、如果second元素为1个且包不含first元素的其中一个,返回true;
5、如果second元素为2个且不包含first元素的任意一个返回true;
6、如果second元素为2个且只包含first元素的任意1个返回true;
7、如果second元素为2个且包含first元素的任意2个返回false;
8、如果second元素为3个且不包含first元素返回true;
9、如果second元素为3个且只包含first其中1个返回true
10、如果second元素为3个且全部包含first的元素;返回false
11、如果second元素为3个且只包含first的2个元素;返回true
12、如果second元素为4个且只包含first的1个元素返回true;
13、如果second元素为4个且只包含first的2个元素返回true;
14、如果second元素为4个且只包含first的3个元素返回true;
15、如果second元素大于4个且只包含first的1个元素返回true;
16、如果second元素大于4个且只包含first的2个元素返回true;
17、如果second元素大于4个且只包含first的3个元素返回true;
18、如果second元素大于4个且只包含first的4个元素返回true;
function fn(a, b) {
// 传入类型判断
if (!Array.isArray(a) || !Array.isArray(b)) return true;
// 边界情况
if (!a.length || !b.length) return true;
// 数组a转化为map结构(受限于数组元素类型,可另用 ES6 Map
const aMap = a.reduce((iter, val) => (iter[val] = true) && iter, {});
// b里有a没有的元素就返回 true
return b.some(v => !aMap[v]);
}
function fn(a, b) {
if (!a.length || !b.length) return true
for (var i = 0; i < b.length; i++) {
if (!a.includes(b[i])) return true
}
return false
}
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
2 回答4.3k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
4 回答2.5k 阅读✓ 已解决
5 回答3.8k 阅读
`var first = ['a','b','c','d'];
var second = ['1','a','b','b','c','d'];
function test(first,second) {
}
test(first,second);
VM336:23 4
false`