下面我将为你详细讲解“JS搜狐面试题分析”的完整攻略。
1. 题目分析
首先,需要了解这道面试题的要求和限制。根据题目描述,我们需要完成以下几个任务:
- 输入一个数字n,生成一个由n个随机数字组成的数组arr;
- 计算数组中所有数值的平均数avg,并以最多两位小数的形式输出;
- 找出数组中最接近平均数的数字,并输出其值。
2. 解题思路
解题思路可分为以下几个步骤:
- 先利用JavaScript生成由n个随机数字组成的数组arr。
- 计算arr中所有数值的平均数avg。
- 遍历arr数组,计算每个数字与平均数的差值,取绝对值后对比,找到差值最小的数字,即为最接近平均数的数字。
- 输出平均数和最接近平均数的数字。
3. 代码实现
根据以上思路,我们可以完成以下代码实现:
// 生成由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,最后输出结果。
4. 示例说明
以下是两个示例,展示如何使用上述代码实现面试题要求的功能:
示例1
输入:n = 5
输出:
数组为: (5) [53, 90, 83, 78, 97]
平均数为: 80.20
最接近平均数的数字为: 78
示例2
输入:n = 8
输出:
数组为: (8) [7, 46, 80, 100, 89, 49, 13, 43]
平均数为: 54.25
最接近平均数的数字为: 49
以上便是“JS搜狐面试题分析”的完整攻略,希望对你有所帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS搜狐面试题分析 - Python技术站