写几道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 著作权归作者所有。请勿转载和采集!