写几道js编程题并给出答案题目有点难度
- 编写一个函数,接受一个字符串作为参数,返回该字符串中出现次数最多的字符以及出现的次数。
function maxChar(str) {
let charMap = {};
let max = 0;
let maxChar = '';
for (let char of str) {
charMap[char] = charMap[char] + 1 || 1;
}
for (let char in charMap) {
if (charMap[char] > max) {
max = charMap[char];
maxChar = char;
}
}
return `${maxChar} 出现了 ${max} 次`;
}
console.log(maxChar('hello world')); // l 出现了 3 次
- 编写一个函数,接受一个整数作为参数,返回该整数的所有因子(除了1和本身的因子)。
function getFactors(n) {
let factors = [];
for (let i = 2; i < n; i++) {
if (n % i === 0) {
factors.push(i);
}
}
return factors;
}
console.log(getFactors(12)); // [2, 3, 4, 6]
- 编写一个函数,接受一个字符串作为参数,返回该字符串中所有可能的子串。
function getSubstrings(str) {
let substrings = [];
for (let i = 0; i < str.length; i++) {
for (let j = i + 1; j < str.length + 1; j++) {
substrings.push(str.slice(i, j));
}
}
return substrings;
}
console.log(getSubstrings('abc')); // ['a', 'ab', 'abc', 'b', 'bc', 'c']
- 编写一个函数,接受一个字符串作为参数,返回该字符串中第一个不重复的字符。
function firstNonRepeatChar(str) {
let charMap = {};
for (let char of str) {
charMap[char] = charMap[char] + 1 || 1;
}
for (let char of str) {
if (charMap[char] === 1) {
return char;
}
}
return null;
}
console.log(firstNonRepeatChar('hello')); // h
- 编写一个函数,接受一个整数数组作为参数,返回该数组中所有可能的子数组。
function getSubarrays(arr) {
let subarrays = [];
for (let i = 0; i < arr.length; i++) {
for (let j = i + 1; j < arr.length + 1; j++) {
subarrays.push(arr.slice(i, j));
}
}
return subarrays;
}
console.log(getSubarrays([1, 2, 3])); // [[1], [1, 2], [1, 2, 3], [2], [2, 3], [3]]
原文地址: https://www.cveoy.top/t/topic/EV4 著作权归作者所有。请勿转载和采集!