web-dev-qa-db-ja.com

配列内のオブジェクトキーの合計を計算する方法-javascript

質問

私はfirebaseを使用していて、ネイティブに反応します。

Firebaseデータベースから次のような配列を返しました。

[Object, Object, Object]

各オブジェクトの下に、「level:4」という1つのアイテムを返しました。

したがって、4,5,6を含む3つのオブジェクトがあります。これらを合計するにはどうすればよいですか?

ありがとう!

5
gbland777

単純なループのいずれか

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))
9
epascarello

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);
12
Yasin Yaqoobi

Array.prototype.forEach() メソッドを使用して、配列を反復処理し、要素を合計します。

配列が_var foo = [object, object, object]_であると仮定しましょう。各objectはこの構造を持っています、_{ level : 4 }_

次のようなコードを記述します。

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

sumは合計を保存します

1
Prateek Gupta

このコードは、配列の合計を計算します。まず、1つの変数を宣言します。この変数の名前はsumになります。 sumには合計が含まれます。次に、タイプnumbersArray変数を宣言します。この変数には数字が含まれます。

次に、ループ(for)操作を開始します。この操作では、sum変数に(sum= sum+i);の値を割り当てます。次に、(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);
0
Javidan Akberov

配列内のオブジェクトにアクセスしてプロパティを呼び出してみましたか?

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