首页 > JS如何实现数组第一个字符串元素包含了第二个字符串元素的所有字符,函数就返回true,否则返回false?

JS如何实现数组第一个字符串元素包含了第二个字符串元素的所有字符,函数就返回true,否则返回false?

["hello", "hey"]应该返回false,因为字符串"hello"并不包含字符"y"。
["Alien", "line"]应该返回true,因为"line"中所有字符都可以在"Alien"找到。

mutation(["hello", "hey"]) //应该返回 false.
mutation(["zyxwvutsrqponmlkjihgfedcba", "qrstu"]) //应该返回 true.
mutation(["Mary", "Aarmy"]) //应该返回 true.
mutation(["Alien", "line"]) //应该返回 true.
mutation(["floor", "for"]) //应该返回 true.
mutation(["hello", "neo"]) //应该返回 false.


function demo(str1, str2) {
    str1 = str1.toLowerCase();
    str2 = str2.toLowerCase();
    return ![].some.call(str2, function (n) {
        return !~str1.indexOf(n);
    });
}

上述代码通俗化,就是把big降低点=》

function demo(str1, str2) {
    str1 = str1.toLowerCase();
    str2 = str2.toLowerCase();
    for (var i = 0, len = str2.length; i < len; i++) {
        if (str1.indexOf(str2[i]) < 0) {
            return false;
        }
    }
    return true;
}

function test(s1,s2){
    s1 = s1.toLowerCase();
    s2 = s2.toLowerCase();
    
    return s1.split('').sort().join('').indexOf(s2.split('').sort().join('')) == -1 ? false : true;
    
}

function mutation (str1, str2) {
    let map = {}
    [].forEach.call(str1.toLowerCase(), char => map[char] = true)
    return ![].some.call(str2.toLowerCase(), char => !map[char]).length
}

function mutation(arr) {
    const source = arr[0].toLowerCase(),
        compare = arr[1].toLowerCase().split("");
        
    return(
        compare.every((n) => source.indexOf(n) !== -1)
    );
}

没看懂你的思路,按我的理解,这样写应该就是实现的你的需求:

function mutation(arr) {
    if( arr.length > 1 ){
        var arr0 = arr[0].toLowerCase();
        for( var i = 0 ; i < arr[1].length ; i++){
            if( arr0.indexOf(arr[1].substr(i,1).toLowerCase()) == -1 ){
                return false;
            }
        }
        return true;
    }else{
        return false;    //数组元素不足两个
    }
}

jtgdwan


function mutation(arr) {
    for (var i = 0; i < arr[1].length; i++) {
        if (!new RegExp(arr[1][i], 'gi').test(arr[0])) {
            return false
        }
    }
    return true
}
console.log(mutation(["hello", "hey"]))//应该返回 false.
console.log(mutation(["zyxwvutsrqponmlkjihgfedcba", "qrstu"])) //应该返回 true.
console.log(mutation(["Mary", "Aarmy"])) //应该返回 true.
console.log(mutation(["Alien", "line"])) //应该返回 true.
console.log(mutation(["floor", "for"])) //应该返回 true.
console.log(mutation(["hello", "neo"])) //应该返回 false.
【热门文章】
【热门文章】