来自 JavaScript 中数组的值的总和

Sum value from an Array in JavaScript

本文关键字:数组 JavaScript 来自      更新时间:2023-09-26

我正在尝试在javascript变量中做一个加法方法,下面是我的代码:

<html>
<body>
  <p id="demo"></p>
  <p id="demo1"></p>
  <p id="demo2"></p>
  <script>
  var juice = [];
  var water = [];
  var fruits = [2, 5, 7, 10,15, 25,28,34,38,45,49,52,55,57,59];
  for(var i =0;i < fruits.length;i++){
        var today = new Date();
        var numberOfDaysToAdd = fruits[i] ;
        today.setDate(today.getDate() + numberOfDaysToAdd); 
        var dd = today.getDate();
        var mm = today.getMonth()+1; //January is 0!
        var yyyy = today.getFullYear();
        if(dd<10) {
           dd='0'+dd
        } 
        if(mm<10) {
           mm='0'+mm
        } 
        today = mm+'/'+dd+'/'+yyyy+' $ ';
     juice[i] = today;
    for( var j=0; j<=juice.length; j++)
   {
        water[j] += juice[j][4];
   }
  }
  document.getElementById("demo").innerHTML = juice.length;
  document.getElementById("demo1").innerHTML = juice;
  document.getElementById("demo2").innerHTML = water;
  </script>    
</body>
</body>
</html>

我想对上面的水变量进行加法 4 并打印输出,我尝试如上所述编码,但我无法实现该功能.

尝试使用如下所示的Array.prototype.reduce

var a = [1,3,5,6,9,12,16, 18];
var sum = a.reduce(function (prev, current) {
            return prev + current
          }, 0);
document.querySelector('#content').innerHTML = sum;
<div id='content'> </div>

如果您需要为每个使用添加 4Array.prototype.map如下所示:

    var a = [1,3,5,6,9,12,16, 18];
    var sum = a.map(function (val) {
                return val + 4;
              });
    document.querySelector('#content').innerHTML = sum;
<div id='content'></div>

第二个 for 循环中water[j] += juice[j][4];的语句不起作用,因为您将 += 运算符用于从未定义的数组元素。例如,如果我有:

var x = [];
x[0] += 1;

这会导致 NaN。如果我用这样的字符串来做:

var x = [];
x[0] += 'a';

它导致"未定义"。所以这需要改变。

其次,您要尝试进行哪种整数加法? juice是基于您的代码的字符串数组,例如"04-24-2016"。您的意思是在juice[j]中存储的任何日期上添加 4 天吗?