下面我将为你详细讲解“JS搜狐面试题分析”的完整攻略。
首先,需要了解这道面试题的要求和限制。根据题目描述,我们需要完成以下几个任务:
解题思路可分为以下几个步骤:
根据以上思路,我们可以完成以下代码实现:
// 生成由n位随机数字组成的数组arr
function generateRandomArray(n) {
var arr = [];
for (var i = 0; i < n; i++) {
var num = Math.ceil(Math.random() * 100);
arr.push(num);
}
return arr;
}
// 计算数组中所有数值的平均数
function calculateAverage(arr) {
var sum = 0;
var len = arr.length;
for (var i = 0; i < len; i++) {
sum += arr[i];
}
return (sum / len).toFixed(2);
}
// 找到最接近平均数的数字
function findClosestNumber(arr, avg) {
var minDiff = Infinity;
var closestNum = arr[0];
for (var i = 0; i < arr.length; i++) {
var diff = Math.abs(avg - arr[i]);
if (diff < minDiff) {
minDiff = diff;
closestNum = arr[i];
}
}
return closestNum;
}
// 测试代码
var arr = generateRandomArray(10);
console.log("数组为:", arr);
var avg = calculateAverage(arr);
console.log("平均数为:", avg);
var closestNum = findClosestNumber(arr, avg);
console.log("最接近平均数的数字为:", closestNum);
上述代码中,我们首先调用generateRandomArray
函数生成了由n个随机数字组成的数组arr,然后计算arr中所有数值的平均数avg,接着调用findClosestNumber
函数找到最接近平均数的数字closestNum,最后输出结果。
以下是两个示例,展示如何使用上述代码实现面试题要求的功能:
输入:n = 5
输出:
数组为: (5) [53, 90, 83, 78, 97]
平均数为: 80.20
最接近平均数的数字为: 78
输入:n = 8
输出:
数组为: (8) [7, 46, 80, 100, 89, 49, 13, 43]
平均数为: 54.25
最接近平均数的数字为: 49
以上便是“JS搜狐面试题分析”的完整攻略,希望对你有所帮助!
本文链接:http://task.lmcjl.com/news/9228.html