JavaScript 题 库 四

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/gklcsdn/article/details/102762836

JavaScript 题库(字符串 & 数组)

1. 随机四位不重复密码
// charAt 索引取值 
function fn() {
    var str = "1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM";
    newStr = ''
    for (var i = 0; i < 4; i++) {
        // 临时字符串
        tem = str.charAt((Math.random() * str.length));
        // -1 表示不存在, 不存在就添加; 存在就跳过当前循环
        if (newStr.indexOf(tem) === -1) {
            newStr += tem
        } else {
            i--;
            continue
        }
    }
    return newStr
}
fn()
2. 封装函数检查字符串结尾
function confirmEnding(target, end) {
    // 获取end的长度
    var len = end.length;
    // 通过end的长度截取target, 然后判断
    if (target.substr(-len) === end) {
        return true
    } else {
        return false
    }

}

confirmEnding('guokanglun', 'un'); //true
confirmEnding('guokanglun', 'u'); //false
3. 封装函数用来反转数字
function reverseNumber(number) {
    var result = number.toString().split('').reverse().join('')
    return Number(result)

}

reverseNumber(123456); // 654321
4. 封装函数检查字符串是否为回文 (原字符串和反转字符串一样)
function reverseNumber(string) {
    var result = string.split('').reverse().join('')
    if (result == string) {
        return true
    } else {
        return false
    }

}

reverseNumber("damad");
5. 写一个函数输出对传入的所有子字符串组合
function comb(string) {
    var arr = []
    for (var i = 0; i < string.length; i++) {
        for (var j = i + 1; j < string.length + 1; j++) {
            arr.push(string.substr(i, j))

        }

    }
    return Array.from(new Set(arr));  // ES6 set方法去重
}

comb('cat'); // ['c', 'ca', 'cat', 'a', 'at', 't']
6. 对字符串排序
function recordStr(string) {
    return string.split('').sort().join('')

}
recordStr('hello'); // "ehllo"
7. 字符串首字母大写
/*
    1. 转数组['hello', 'world']
    2. 遍历数组取第一个字符, 用大写替换
    2. return
*/
function upper(string) {
    var arr = string.split(' ');
    for (var i = 0; i < arr.length; i++) {
        arr[i] = arr[i].replace(arr[i][0], arr[i][0].toUpperCase())
    }
    return arr.join(' ')

}
upper('hello world');
8. 写一个函数, 找出一个字符串中最长的单词
function maxLen(string) {
    var arr = string.split(' ');
    var mLen = 0; // 长度
    var mLenIndex = 0; // 索引
    for (var i = 0; i < arr.length; i++) {
        if (arr[i].length > mLen) {
            mLen = arr[i].length;
            mLenIndex = i;
        }
    }
    return arr[mLenIndex];
}

maxLen('web development sts');
9. 封装函数,重复输出字符串
function repeat(string, count) {
    var newString = ''
    for (var i = 0; i < count; i++) {
        newString += string
    }
    return newString
}

repeat('gkl', 3);  // "gklgklgkl"
10. 封装函数, 删除数组中的假值
/*
    push 方法: 数组插入数据
*/
function bonce(arr) {
    var newArr = [];
    for (var i = 0; i < arr.length; i++) {
        if (Boolean(arr[i])) {
            newArr.push(arr[i])
        }

    }
    return newArr;
}
bonce(['1', false, '', 'eat']);  // ["1", "eat"]
11. 比较字符串, 判断第一个字符串里是否包含第二个
function compare(string1, string2) {
    for (var i = 0; i < string2.length; i++) {
        if (string1.indexOf(string2[i]) === -1) {
            return false
        }
    }
    return true;
}

compare('hello', 'eo'); // true
compare('hello', 'eoa'); // false
12. 封装函数获取字符串中的数字, 并按照数组输出
function getNumber(string) {
    var reg = /\d+/g;
    result = string.match(reg);
    console.log(result)

}

getNumber('fdgdsfg45346dgs3543gsd3454'); // [45346, 3543, 3454]
13. 封装函数, 实现字符串去重
function fn(string) {
    var newStr = '';
    for (var i = 0; i < string.length; i++) {
        if (newStr.indexOf(string[i]) === -1) {
            newStr += string[i]
        }
    }
    return newStr;
}
fn('guokanglun');

//==========================================================================

function fn(string) {
    return Array.from(new Set(string)).join('')
}
fn('guokanglun');

猜你喜欢

转载自blog.csdn.net/gklcsdn/article/details/102762836