108 次浏览
我们需要编写一个 JavaScript 函数,该函数接收一个长度为 N 的数字数组(N 应为偶数),并将数组分成两个子数组(左子数组和右子数组),每个子数组包含 N/2 个元素,然后对子数组求和,最后将两个子数组的和相乘。例如:如果输入数组为 - const arr = [1, 2, 3, 4] 那么输出应为 -(2+1) * (3+4) = 21 例如 以下代码 - const arr = [1, 2, 3, 4] const subArrayProduct = arr => { const { length: l } = arr; const creds = arr.reduce((acc, ... 阅读更多
409 次浏览
我们需要编写一个 JavaScript 函数,该函数接收一个这样的数组,并计算数组中所有不同元素的和。例如:假设我们有一个这样的数字数组 - const arr = [1, 5, 2, 1, 2, 3, 4, 5, 7, 8, 7, 1];上述数组的输出将为 20。例如 以下代码 - const arr = [1, 5, 2, 1, 2, 3, 4, 5, 7, 8, 7, 1]; const distinctSum = arr => { let res = 0; for(let i = 0; i < arr.length; i++){ if(i === arr.lastIndexOf(arr[i])){ res += arr[i]; }; continue; }; return res; }; console.log(distinctSum(arr));输出控制台中输出以下内容 - 30
112 次浏览
我们需要编写一个 JavaScript 函数,该函数接收一个数字并检查它是否属于斐波那契数列。我们应该返回一个布尔值。以下是检查斐波那契数列的代码 - 例如 const num = 89; const isFib = query => { if(query === 0 || query === 1){ return true; } let prev = 1; let count = 2; let temp = 0; while(count
474 次浏览
假设我们有一个这样的排序文字数组 - const arr = [2, 2, 3, 3, 3, 5, 5, 6, 7, 8, 9];我们需要编写一个 JavaScript 函数,该函数接收一个这样的数组并返回数组中只出现一次的第一个数字。如果数组中没有这样的数字,我们应该返回 false。对于这个数组,输出应该是 6 例如 以下代码 - const arr = [2, 2, 3, 3, 3, 5, 5, 6, 7, 8, 9]; const firstNonDuplicate = arr => { let appeared = false; for(let i ... 阅读更多
382 次浏览
我们需要编写一个 JavaScript 函数,该函数接收一个数字 n,我们需要检查是否存在三个连续的自然数(非十进制/浮点数)的和等于 n。如果存在这样的数字,我们的函数应该返回它们,否则应该返回 false。以下是代码 - 例如 const sum = 54; const threeConsecutiveSum = sum => { if(sum < 6 || sum % 3 !== 0){ return false; } // 三个数字将是这种形式: // x + x + 1 + x ... 阅读更多
275 次浏览
我们需要编写一个 JavaScript 函数,该函数接收一个小写字符串并将其反向排序,即 b 应该在 a 之前,c 在 b 之前,依此类推。例如:如果输入字符串为 - const str = "hello";那么输出应该为 - const output = "ollhe";例如 以下代码 - const string = 'hello'; const sorter = (a, b) => { const legend = [-1, 0, 1]; return legend[+(a < b)]; } const reverseSort = str => { const strArr = str.split(""); return strArr .sort(sorter) .join(""); }; console.log(reverseSort(string));输出控制台中输出以下内容 - ollhe
96 次浏览
我们需要编写一个 JavaScript 函数,该函数接收一个数字,从该数字的第一位和最后一位构造一个新数字,并返回原始数字与由此形成的数字之间的差。例如:如果输入是 34567 那么角位数字将是 - 37 并且输出将是 - 34530 例如 以下代码 - const num = 34567; const cornerDifference = num => { let temp = Math.abs(num); let corner = temp % 10; if(temp < 100){ corner = temp; }else{ while(temp >= 10){ ... 阅读更多
113 次浏览
假设我们有一个这样的数字数组 - const arr = [3, 5, 5, 23, 3, 5, 6, 43, 23, 7];我们需要编写一个函数,该函数接收一个这样的数组并构造另一个数组,其元素是输入数组中连续元素之间的差值。对于这个数组,输出将是 - const output = [-2, 0, -18, 20, -2, -1, -37, 20, 16];例如 以下代码 - const arr = [3, 5, 5, 23, 3, 5, 6, 43, 23, 7]; const consecutiveDifference = arr => { const res = []; for(let i = 0; ... 阅读更多
2K+ 次浏览
假设我们有一个二维数组表示一个这样的方阵 - const arr = [ [1, 3, 4, 2], [4, 5, 3, 5], [5, 2, 6, 4], [8, 2, 9, 3] ];我们需要编写一个函数,该函数接收这个数组并返回矩阵主对角线上元素的乘积。对于这个数组,主对角线上的元素为 - 1、5、6、3 因此输出应该是 - 90 例如 以下代码 - const arr = [ [1, 3, 4, 2], [4, 5, 3, 5], ... 阅读更多
895 次浏览
我们需要编写一个 JavaScript 函数,该函数接收一个包含一些重复两次的单词的字符串,我们需要计算这些单词的数量。例如 - 如果输入字符串为 - const str = "car bus jeep car jeep bus motorbike truck";那么输出应该为 - 3 例如 以下代码 - const str = "car bus jeep car jeep bus motorbike truck"; const countRepetitive = str => { const strArr = str.split(" "); let count = 0; for(let i = 0; i < strArr.length; i++){ if(i === strArr.lastIndexOf(strArr[i])){ continue; ... 阅读更多