版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
1.
请实现一个简单的事件机制,能够实现对事件的触发和监听。
如:EventEmitter.on(); EventEmitter.trigger();
const camel_hump = str => {
return str.replace(/(?:\-|\_)([a-z])/g, (input, match) => {
return match.toUpperCase();
});
}
2.
使用MYSQL进行模糊查询 LIKE ‘_YOU%’,下面哪个是正确结果?
YYOUYO
_:表示任意单个字符 %:表示任意个或多个字符
3.
请求出第20个丑数。(最小因子只有2、3、5的数,称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7,习惯上我们把1当做是第一个丑数);
输入:getUglyNumber(20)
输出:36
思路:
1.按顺序将丑数保存在数组中,然后求下一个丑数;
2.下一个丑数是由数组中某个丑数A * 2,B * 3,C * 5中的最小值得来的。
3.按照题目规定,第一个丑数是1,存入数组中;
4.第二个丑数为1*2,1*3,1*5三个中的最小值;
5.第三个丑数为2*2,1*3,1*5三个中的最小值,依次类推,求出第N个数组。
const getUglyNumber = n => {
if (n >= 1) {
const temp = [1],
result = [1];
let i = 1,
index2 = 0,
index3 = 0,
index5 = 0;
while (result.length < n) {
temp[i] = Math.min(temp[index2] * 2, temp[index3] * 3, temp[index5] * 5);
if (temp[i] == temp[index2] * 2) {
index2++;
} else if (temp[i] == temp[index3] * 3) {
index3++;
} else if (temp[i] == temp[index5] * 5) {
index5++;
}
if (result.indexOf(temp[i]) == -1) {
result.push(temp[i]);
}
i++;
}
return result[n - 1];
}
}
4.
请判断一个字符串出现次数最多的字符及出现次数?
输入:const str = 'asddfgdfwwqeweqwezczxcsdfgdgd';
输出:’d’, 出现6次
const str = 'asddfgdfwwqeweqwezczxcsdfgdgd';
let map = {};
let maxTimes = 0,
target;
for (let i = 0; i < str.length;i++) {
if (map[str[i]] !== undefined) {
map[str[i]]++;
} else {
map[str[i]] = 1;
}
if (map[str[i]] > maxTimes) {
maxTimes = map[str[i]];
target = str[i];
}
}
map = null;
5.
求字符串 'hello world' 对应的ASCII码数组,并按照编码大小逆序。
输入:'hello world’
输出:[119, 114, 111, 111, 108, 108, 108, 104, 101, 100, 32]
var str = 'hello world';
var arr=[];
for(var i=0;i<str.length;i++){
arr.push(str[i].charCodeAt());
}
arr.sort((a,b)=>a-b).reverse();
console.log(arr);
十进制ASCII码转换成字符:String.fromCharCode(num1[, ...[, numN]])
String.fromCodePoint(65) // A
String.fromCodePoint(90) // Z
String.fromCodePoint(97) // a
String.fromCodePoint(122) // z
字符转换成十进制ASCII码:'a'.charCodeAt()
'A'.charCodeAt() // 65
'a'.charCodeAt() // 97
'Z'.charCodeAt() // 90
'z'.charCodeAt() // 122
6.调用函数无返回值,要求改变原有数组
输入描述: ["t","h","e"," ","s","k","y"," ","i","s"," ","b","l","u","e"]
输出描述:["b","l","u","e"," ","i","s"," ","s","k","y"," ","t","h","e"]
var reverseWords = function(s) {
var arr=[];
for(var i=s.length-1;i>=0;i--){
if(s[i]===' ') arr= arr.concat(s.splice(i,s.length-1));
}
arr.shift();
arr.push(" ");
for(var i=arr.length-1;i>=0;i--){
s.unshift(arr[i]);
}
console.log(s);
console.log(arr);
};
// JSON.stringify
var s = ["t","h","e"," ","s","k","y"," ","i","s"," ","b","l","u","e"];
// s = JSON.parse(s);
reverseWords(s);
var quotedAndCommaSeparated = '["' + s.join('","') + '"]';
console.log(quotedAndCommaSeparated);