gpt4 book ai didi

javascript - JS 包含字符串和字符串数字的数组的平均值

转载 作者:行者123 更新时间:2023-12-01 01:51:32 25 4
gpt4 key购买 nike

我正在尝试获取包含字符串、数字和字符串数字的数组的平均值。平均值必须考虑字符串化数字。

我已经使用了reduce,到目前为止可以得到平均值,但是忽略这些单词就无法让它工作。这就是我现在所拥有的。

           <script>

function average() {
const array = [4, 45, 'hgd', '50', 87, 8, 'dhgs', 85, 4, '9'];
let sum = arr.reduce((x, y) =>
typeof +x === 'Number' ? x + y : +x + y);
sum = sum / arr.length;
return document.write(sum);
}
</script>

有人可以帮我吗?谢谢。

最佳答案

试试这个:

a.reduce((x, y) => +y ? x + +y : x)

对于平均值,您需要获取总数组大小,您可以在 reduce 函数中执行此操作:

let count = 0;
a.reduce((x, y) => {
if (+y) {
count ++;
x += +y;
}
return x;
}, 0);

reduce 的第二个输入是 developer on mozilla表示初始值,在本例中我们需要为 0,因此所有数组成员都会进入 y(如果未提供,第一个元素将被忽略)和 count 给出真实结果

更新1如果您只需要字符串数字,则必须使用:

let sum = a.reduce((x, y) => typeof y !== 'number' && +y ? x + +y : x, 0)

对于平均值,您需要这个:

let count = 0;
let sum = a.reduce((x, y) => {
if (typeof y !== 'number' && +y) {
x + +y;
count ++;
}
return x;
}, 0);
let average = sum / count;

这完全符合您的预期。

关于javascript - JS 包含字符串和字符串数字的数组的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51459262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com