【问题标题】:How to calculate sum of object keys in array - javascript如何计算数组中对象键的总和 - javascript
【发布时间】:2017-01-17 01:34:22
【问题描述】:

问题

我正在使用 firebase 并做出原生反应。

我从我的 firebase 数据库返回了一个如下所示的数组。

[Object, Object, Object]

在每个对象下,我返回了一个项目,“level:4”。

所以我有三个包含 4、5、6 的对象。我如何将这些加在一起?

谢谢!

【问题讨论】:

  • 遍历它的数组,读取属性,添加...
  • 嘿 gbland777。欢迎来到 StackOverflow。您可能已经注意到您的问题得到了一些反对意见。防止这种情况的一种方法是提供(在您的问题中)minimal code that reproduces the problem。有了它,我们可以检查您的代码以查看您可能做错了什么(或需要澄清),而不是试图从您的描述中回溯。这是一种更有效的帮助人们的方式;你为我们做的越容易,你就越有可能得到帮助。 :-)

标签: javascript reactjs firebase react-native firebase-realtime-database


【解决方案1】:

您可以使用 Javascript 的 reduce 函数。这与@epascarello 的答案基本相同,但使用的是 ES6 语法。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce

const arr = [{level:2},{level:4},{level:5}]; 

const total = arr.reduce((prev,next) => prev + next.level,0);

console.log(total);

【讨论】:

    【解决方案2】:

    简单的循环

    var a = [{level:1},{level:2},{level:3},{level:4}],
            total = 0;
        for (var i=0; i<a.length; i++) {
            total += a[i].level;
        }
    console.log('total', total)

    或减少

    var a = [{level:1},{level:2},{level:3},{level:4}]
    console.log(a.reduce( function(cnt,o){ return cnt + o.level; }, 0))

    【讨论】:

      【解决方案3】:

      使用Array.prototype.forEach() 方法遍历您的数组并对元素求和。

      假设您的数组是var foo = [object, object, object] 每个object都有这个结构,{ level : 4 }

      这样写代码:

      var sum = 0;
      foo.forEach(function(obj){
        sum += obj.level;
      });
      

      sum 将存储总和

      【讨论】:

        【解决方案4】:

        此代码将计算数组的总和。首先,声明一个变量;这个变量的名字是sumsum 包含总数。其次,声明Array 类型的numbers 变量。此变量将包含数字。

        然后我们开始一个循环(for)操作,我们将(sum= sum+i);的值赋给sum变量。 然后我们在(document.write) 中显示数字和总和。

        var summa = 0 , i ;
        var numbers= [1,2,3,4,5];
        for(i = 0; i <= numbers.length; i++){
            summa=summa+i;
        } 
        document.write(numbers , ": bu reqemlerin cemi " ,"=" , summa);
        

        【讨论】:

        • 不好意思我是新的stackoverflow,不知道是哪部分代码写的所以我用旁白写了
        【解决方案5】:

        您是否尝试过访问数组中的对象并调用属性?

        var array = [object, object, object];
        var sum = array[0].level + array[1].level + array[2].level;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-11-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-10-08
          相关资源
          最近更新 更多