如何计算数组中对象键的总和 - 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】:此代码将计算数组的总和。首先,声明一个变量;这个变量的名字是sum
。 sum
包含总数。其次,声明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的主要内容,如果未能解决你的问题,请参考以下文章