gpt4 book ai didi

javascript - 减少数组

转载 作者:行者123 更新时间:2023-11-28 06:54:10 25 4
gpt4 key购买 nike

var x=Math.random();
x=x*600;
var k=0;
var total;
var arr=[];
if(k<10){
k++;
arr.push(x);
}
if(k%2==0){
var tot=arr.reduce(function(a,b){
total=a+b;
document.getElementById("a").innerHTML=total;
}
}

在上面的代码中,arr 存储 x 的随机值(最多 10 个值)。 我想在存储两个元素后显示元素的总和。 例如, 如果 arr=[10,1] 然后我希望总数为 11,当接下来的两个元素(35 和 32)添加到数组中时 arr=[11,35,32] 我希望总数更新为 78。 第一次显示总计,即 arr 有 2 个元素时 但当接下来的两个元素到 arr(35 和 32) 时,总计显示为 NaN。 请帮助我!!

最佳答案

Array.reduce() 用作回调迭代器,如下所示:

var x = [1, 2, 3];
var sumX = x.reduce(function(a, b) { return a + b; }); // 6

它循环遍历数组,获取元素对并将它们缩小为单个元素。

使用reduce,您的数组必须至少有两个元素才能正确运行。您可以通过多种方式控制它(示例假设存在 arr 数组):

  • 强制数组至少有 2 个元素:

    var sum = arr.concat([0, 0]).reduce(function(a, b) { return a + b; });
  • 验证 b 是否为数字:

    var sum = arr.reduce(function(a, b) { return isNaN(b) ? a : (a + b); });

    在这种情况下,无需验证 a,因为如果 isNaN(b) === true 则意味着该数组包含单个元素。

  • 检查数组的长度 >= 2:

    var sum = arr.length >= 2
    ? arr.reduce(function(a, b) { return a + b; })
    : (arr[0] || 0);

在您的例子中,由 10 个元素组成的随机且精简的数组将如下所示:

var n = 10;
var arr = [];
var sum = 0;
while (arr.length < n) {
arr.push(parseInt(Math.random() * 100));
}
sum = arr.reduce(function(a, b) { return a + b; });
alert(sum);

关于javascript - 减少数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32699775/

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