如何计算数组中对象键的总和 - javascript

Posted

技术标签:

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

问题

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

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

[Object, Object, Object]

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

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

谢谢!

【问题讨论】:

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

【讨论】:

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

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

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

【讨论】:

以上是关于如何计算数组中对象键的总和 - javascript的主要内容,如果未能解决你的问题,请参考以下文章

如何从数组中获取相乘的数组键的总和

你会如何解决这个问题?使用reduce方法计算此数组中嵌套对象值的总和?

如何将对象中特定键的值存储到数组中 - Vue

带有动态键的打字稿通用函数

如何计算数组中元素的总和和平均值?

如何快速计算 UInt16 值数组的总和?