然后我需要一个得到平均高点的函数。下面是我做的:
function getAverageHeight() {
let total_height = 0;
let average_height = statues.length;
if (statues.length > 0) {
for (let i = 0; i < statues.length; i++) {
let statue = statues[i];
total_height += isNaN(statues.height) ? 0 : statue.height;
}
average_height = (total_height / statues.length).toFixed(2);
}
return average_height;
}
但当我测试它时,我得到的回答不是平均值。我做错了什么?有人能提供线索吗?
创建一个函数,该函数在每次调用数组时累加数组中的对象。
创建一个单独的平均值函数,如果height是一个数字,该函数将获取该累计数组并返回height的平均结果
let statues = [];
function createStatue(name, city, height) {
return statues = [...statues, {
name,
city,
height
}]
}
// call functions to populate array
createStatue("Statue of Liberty", "New York", 46);
createStatue("Christ the Redeemer", "Rio de Janeiro", 30);
createStatue("David", "Florence", 5.17);
createStatue("Little Mermaid", "Copenhagen", 1.25);
createStatue("Winged Victory", "Paris", 2.44);
createStatue("Venus de Milo", "Paris", 2);
function getAverageHeight() {
const total = statues.reduce((acc, x) => {
if (!isNaN(x.height)) {
acc.counter += 1
acc.sum += x.height;
}
return acc;
}, {
sum: 0,
counter: 0
})
return (total.sum / total.counter).toFixed(2)
}
console.log(getAverageHeight())
你想用
isNaN(statue.height)
而不是
isNaN(statues.height)
这里的许多解决方案都非常好,但是也有像true
和"
这样的带有isnan
的边缘情况。首先使用parseInt
更安全。这里有一个解决方案,它剔除边缘情况并返回平均值。
let statues = [];
function createStatue(name, city, heightInMeters) {
statues.push({
name,
city,
heightInMeters
});
}
// create statues + edge cases inputs
createStatue("Number", "New York", 46);
createStatue("Decimal", "Florence", 5.17);
createStatue("String", "Florence", '123');
createStatue("True", "Boston", true);
createStatue("Empty", "New York City", '');
function getAverageHeight() {
// Filter out bad cases here
const filteredStatues = statues.filter((x) => {
let num = parseInt(x.heightInMeters);
return !isNaN(num);
});
const total = filteredStatues.reduce((acc, x) => {
return acc+parseInt(x.heightInMeters);
}, 0);
return (total/filteredStatues.length).toFixed(2);
}
console.log(getAverageHeight());
编辑:操作系统提供了原始代码。看看它,有一些奇怪的地方。
heightInMeters: heightInMeters,
isLongerThan: function (other_statue) {
return this.highInMeters > other_statue.hightInMeters;
看起来这里有几个输入错误,代码不应该运行。
取一定时间内的平均值 用法 Your browser does not support the video tag. 案例:数据变化趋势 功能:加入平均值和不加平均值的折线图形成对比,显示数字改变的规律 工作原理 结果将会是一段时间段输入的平均值。你可以设置配置项中的时间段长度(工程师叫它采样窗) 提示 短的采样窗意为着输出对输入变化的反应更敏感。
问题内容: 我无法获得熊猫列的平均值或均值。有一个数据框。我在下面尝试的任何事情都没有给我该列的平均值 以下返回几个值,而不是一个: 这样: 问题答案: 如果您只想要列的均值,请选择列(这是一个系列),然后调用:
问题内容: 我正在尝试学习SQL,所以请耐心等待。我正在使用PostgreSQL 9.3 我想根据日期窗口对一列进行平均。我能够编写窗口函数来完成一个集合,但是我希望能够随着不断增长做到这一点。我的意思是: 我假设有一个比对我要平均的每个范围运行查询更好的方法。任何建议表示赞赏。谢谢你。 编辑 我正在尝试创建均匀分布的垃圾箱,以用于汇总表的值。 我的间隔是: 这里是一个表的列 并且 是并列我想表分
我不能得到熊猫的平均值或平均值。有一个数据框。下面我尝试的东西都没有给我列的平均值 以下内容返回多个值,而不是一个值: 这也是:
Python是否有一个SciPy函数或NumPy函数或模块来计算给定特定窗口的一维数组的运行平均值?
这是我的第一篇帖子。我正在编写一个程序,从四个输入框中获取输入,求出这四个输入框的总和,并求出平均值。当我这样做的时候,我得到了一个错误,有人能指出我哪里出了错。谢谢