算法题目,包含条件计算;

image.png

image.png 采纳了大家的意见,各位指正;

阅读 3.3k
5 个回答

`var first = ['a','b','c','d'];
var second = ['1','a','b','b','c','d'];
function test(first,second) {

var count = 0;

for(var i = 0; i<first.length ;i++) {

    var firstItem = first[i];

    for(var j = 0; j < second.length; j++) {

        var sectondItem = second[j];

        if(firstItem === sectondItem){
            ++count;
            break;
        }

    }
}

console.log(count);

return count !== 4;

}

test(first,second);
VM336:23 4
false`

second.some(item=>!first.includes(item));

新手上路,请多包涵

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  
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题