写几道js编程题并给出答案
- 编写一个函数,接受一个数组作为参数,返回该数组中所有数字的和。
function sumArray(array) {
let sum = 0;
for (let i = 0; i < array.length; i++) {
if (typeof array[i] === "number") {
sum += array[i];
}
}
return sum;
}
console.log(sumArray([1, 2, 3, 4, 5])); // 15
console.log(sumArray(["a", 2, "b", 4, 5])); // 11
- 编写一个函数,接受一个字符串作为参数,返回该字符串中最长的单词。
function longestWord(str) {
let words = str.split(" ");
let longest = "";
for (let i = 0; i < words.length; i++) {
if (words[i].length > longest.length) {
longest = words[i];
}
}
return longest;
}
console.log(longestWord("The quick brown fox jumped over the lazy dog")); // jumped
console.log(longestWord("A sentence with multiple long words")); // multiple
- 编写一个函数,接受一个数字作为参数,返回一个从 1 到该数字的数组,但是其中 3 的倍数替换为 "Fizz",5 的倍数替换为 "Buzz",既是 3 的倍数又是 5 的倍数替换为 "FizzBuzz"。
function fizzBuzz(n) {
let result = [];
for (let i = 1; i <= n; i++) {
if (i % 3 === 0 && i % 5 === 0) {
result.push("FizzBuzz");
} else if (i % 3 === 0) {
result.push("Fizz");
} else if (i % 5 === 0) {
result.push("Buzz");
} else {
result.push(i);
}
}
return result;
}
console.log(fizzBuzz(15)); // [1, 2, "Fizz", 4, "Buzz", "Fizz", 7, 8, "Fizz", "Buzz", 11, "Fizz", 13, 14, "FizzBuzz"]
- 编写一个函数,接受一个字符串和一个字符作为参数,返回该字符串中该字符出现的次数。
function countChar(str, char) {
let count = 0;
for (let i = 0; i < str.length; i++) {
if (str[i] === char) {
count++;
}
}
return count;
}
console.log(countChar("hello world", "l")); // 3
console.log(countChar("hello world", "o")); // 2
- 编写一个函数,接受一个字符串作为参数,返回该字符串中每个字符出现的次数。
function countChars(str) {
let counts = {};
for (let i = 0; i < str.length; i++) {
if (counts[str[i]]) {
counts[str[i]]++;
} else {
counts[str[i]] = 1;
}
}
return counts;
}
console.log(countChars("hello world")); // {h: 1, e: 1, l: 3, o: 2, " ": 1, w: 1, r: 1, d: 1}
console.log(countChars("aaabbbccc")); // {a: 3, b: 3, c: 3}
注意:以上答案仅供参考,可能不是最优解。
原文地址: https://www.cveoy.top/t/topic/EVV 著作权归作者所有。请勿转载和采集!