2016-01-04 33 views
0

如何將每個javascript數組的值存儲在變量中,以便我可以使用它來執行進一步的操作?Javascript數組存儲變量中的每個值

例如:

var plan = [100, 200]; 
var months = [3, 6]; 

for (var i = 0; i < plan.length; i++) { 
    p_det = plan[i]; 
} 
for (var i = 0; i < months.length; i++) { 
    m_det = months[i]; 
} 
console.log(p_det * m_det); //Gives me value of 200*6 

數學動作我已經執行,使得((100 * 3)+(200 * 6))

是存儲在變量中的每個值將幫助?我怎樣才能做到這一點?

+0

爲什麼你能不能做到'無功的結果= 0; for(var i = 0; i Rajesh

+0

我怎樣才能多個索引的每個數組? –

回答

1

將每個元素存儲在變量中都無濟於事,您可以使用array [index]來訪問這些值。假設您的陣列相同的長度,就可以計算出你想要在一個循環:

for (var sum = 0, i = 0; i < plan.length; i++) { 
    sum += plan[i]*month[i]; 
} 
console.log(sum); 
1

你可以用reduce實現它假設兩個數組有相同的長度

var plan = [100, 200]; 
 
var months = [3, 6]; 
 

 
var sum = plan.reduce(function(sum, val, index) { 
 
    return sum + months[index] * val; 
 
}, 0); 
 

 
snippet.log(sum)
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>

0

一個簡單的while循環會做。它適用於任何長度,因爲長度爲Math.min()方法。

function s(a, b) { 
 
    var i = Math.min(a.length, b.length), 
 
     r = 0; 
 
    while (i--) { 
 
     r += a[i] * b[i]; 
 
    } 
 
    return r; 
 
} 
 

 
document.write(s([100, 200], [3, 6]));

0

在ES6:

sum(plan.map((e, i) => e * months[i]) 

其中總和

function sum(a) { return a.reduce((x, y) => x + y); }