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

image.png

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

已解决 悬赏分:0 - 解决时间 2021-11-27 06:31
反对 0举报 0 收藏 0

回答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`

    支持 0 反对 0 举报
    2021-11-27 00:55
  • @

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

    支持 0 反对 0 举报
    2021-11-27 01:57
  • @

    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;

    支持 0 反对 0 举报
    2021-11-27 02:07
  • @
    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]);
    }
    支持 0 反对 0 举报
    2021-11-27 03:00
  • @
    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  
    }
    支持 0 反对 0 举报
    2021-11-27 03:27