版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
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');