私はfirebaseを使用していて、ネイティブに反応します。
Firebaseデータベースから次のような配列を返しました。
[Object, Object, Object]
各オブジェクトの下に、「level:4」という1つのアイテムを返しました。
したがって、4,5,6を含む3つのオブジェクトがあります。これらを合計するにはどうすればよいですか?
ありがとう!
単純なループのいずれか
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))
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);
Array.prototype.forEach()
メソッドを使用して、配列を反復処理し、要素を合計します。
配列が_var foo = [object, object, object]
_であると仮定しましょう。各object
はこの構造を持っています、_{ level : 4 }
_
次のようなコードを記述します。
_var sum = 0;
foo.forEach(function(obj){
sum += obj.level;
});
_
sum
は合計を保存します
このコードは、配列の合計を計算します。まず、1つの変数を宣言します。この変数の名前はsum
になります。 sum
には合計が含まれます。次に、タイプnumbers
のArray
変数を宣言します。この変数には数字が含まれます。
次に、ループ(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);
配列内のオブジェクトにアクセスしてプロパティを呼び出してみましたか?
var array = [object, object, object];
var sum = array[0].level + array[1].level + array[2].level;