减少数组
Reducing an Array
本文关键字:数组 更新时间:2023-09-26
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个元素时,第一次显示Total但是当arr后面的两个元素(35和32)时,total将显示为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);
不使用reduce。带有按钮的示例:
<html>
<head>
<script type='text/javascript'>
var k=0;
var total;
var arr=[];
function go()
{
var x=Math.random();
x=x*600;
if(k<10){
k++;
arr.push(x);
}
if(k%2==0)
{
var total = 0;
for( i = 0; i < arr.length; i++ )
{
total += arr[i];
}
document.getElementById("a").innerHTML = total;
arr = [total];
}
}
</script>
</head>
<body>
<div id='a'></div>
<input type='button' onclick='go();' value='go' />
</body>
相关文章:
- 如何在映射数组中添加换行符
- javascript结合了数组和字典
- 需要帮助设置json数组
- 不能从angular2中的子组件指定父组件中的数组
- 使用JS将数组转换为json对象
- 数组在递归方法中设置为null
- knockoutjs可观察数组
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 将数组从PHP传递到Javascript
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 在函数中添加数组元素的数值
- 无法通过数组映射绑定
- javascript中的数组出错
- 如何使用 node.js 比较两个 json 数组
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 根据id将json数组组合为一个json数组
- 如何通过数组更新角度子范围
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- 在Javascript中转换对象数组
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串