2015-11-25 2 views
0

Новый JS здесь. Как я могу использовать math.js или vanilla js для возврата массива, где массив 2d умножается на каждый столбец. Размер двух массивов всегда будет одинаковым.Умножьте каждый столбец из массива 2d и возвращаемого массива

[[2,2], 
[2,4]] 

результатов

[4,8] 

Я попытался:

adjustedrating = [[2,2],[2,4]] 
var w = adjustedrating.length; 

for (var i = 0, len = adjustedrating[0].length; i < len; i++) { 
    var multiple = adjustedrating[0][i]; 
    for (var j = 0; j < w; j++) { 
     multiple *= adjustedrating[j][i]; 

    } 
    both.push(multiple); 
}; 
+0

Можете ли вы показать нам, что вы пробовали? – Rajesh

ответ

0

Что вы можете сделать, это цикл через внешний массив и сохранять результаты умножения, как вы идете. Например:

// The two dimensional array 
 
var twoDimArray = [[2,2], 
 
        [2,4]]; 
 

 
// We'll say this is where your results will go. It will be the same length 
 
//  as one of your inner arrays, and all values will start at 1 
 
var results = [1,1]; 
 

 
// Loop through the 2D Array 
 
for(var outerIndex = 0; outerIndex < twoDimArray.length; outerIndex++){ 
 
    // Loop through the currently selected inner array 
 
    for(var innerIndex = 0; innerIndex < twoDimArray[outerIndex].length; innerIndex++){ 
 
     // Multiply appropriate result by the appropriate value 
 
     results[innerIndex] *= twoDimArray[outerIndex][innerIndex]; 
 
    } 
 
} 
 

 
// Simply displays the results somewhere 
 
document.getElementById('results').innerHTML = results;
<div id="results"></div>

+0

Я не понимаю вашего комментария. Просьба уточнить. – ConnorCMcKee

+0

Приношу свои извинения. Код не был включен первоначально и думал, что пользователь не приложил никаких усилий. Я удалю свой комментарий. Также я бы предложил использовать forEach. – Rajesh

Смежные вопросы