2017-06-02 2 views
1

ですべての配列を結果方法:私はsubstractすべての内側の配列をしてみてください私はsubstractことができ、合計は私が配列内のいくつかの配列を持つ配列

([[10,0],[3,5],[5,8]]) 

- B、その後の結果(例えば、合計:10から0 = 10 、3-5 = -2、5-8 = -3、10 +( - 2)+( - 3)= 5;

私の試み:

var el; 
return array.reduce((a, b) => a - b); 

しかし、私の結果は、ナンを出てきました今私は理解している、私のコードで配列からサブ配列をしたい - 悪い考え。 私は知っているwをforなどで使用してください。私の質問は

reduceまたは他の「近代的な」方法でこれを行うことができますか?

ありがとうございました。私の英語のスキルを気の毒

PS;)

答えて

4

あなたはこのようreduce()メソッドを使用することができます。

var data = [[10,0],[3,5],[5,8]] 
 
var result = data.reduce((r, e) => r + (e[0] - e[1]), 0); 
 
console.log(result)

0

このような何か?あなたは近くにあったが、そのようabに初期0の値と内側の配列を逆参照を持っているようにしてください:

var array = [[10,0],[3,5],[5,8]]; 
 

 
var result = array.reduce((prev, [a, b]) => prev + (a - b), 0); 
 

 
console.log(result);

0
const arr = ([[10,8],[3,5],[5,8]]); 
arr.map(pair => pair[0] - pair[1]).reduce((a,b) => a + b) 
1

柔軟なソリューション、ネストされたの大きさ配列は重要ではありませんが、それでも正しい結果が返されます。

const count = (arr) => arr.reduce((s, v) => { 
 
     s += v.reduce((a,b) => a - b); 
 
     return s; 
 
     }, 0); 
 

 
let arr1 = [ [10, 0], [3, 5], [5, 8] ], 
 
    arr2 = [ [5, 4, 1], [3, 5, 5], [5, 8] ]; 
 
    
 
console.log(count(arr1)); 
 
console.log(count(arr2));

0

あなたは、外側と内側の配列を減らすことができます。

var array = [[10, 0], [3, 5], [5, 8]], 
 
    result = array.reduce(function (r, a) { 
 
     return r + a.reduce(function (x, y) { 
 
      return x - y; 
 
     }) 
 
    }, 0); 
 

 
console.log(result);

関連する問題