2015-09-16 2 views
0

У меня есть 2 массивы =Добавление массивов JavaScript вертикально

var arr1 = ['20', '35', '50']; 

var arr2 = ['+5', '-5', '+10']; 

Мне нужно добавить элементы по вертикали:

var finalArr = ['25', '30', '60']; 

Я пробовал:

var arr1 = ['20', '35', '50'] 
var arr2 = ['+5', '-5', '+10']; 
for (var i = 0; i < arr1.length; i++) { 
var arr1 = arr1[i] + arr2[2]; 
} 
+0

ли массивы должны состоять из строковых представлений чисел, или они могут быть массивами чисел? Это определяет тип ответа. –

ответ

2

Вам нужно добавить соответствующий элементы массива, используя тот же самый индекс. Вам также нужно назначить результаты либо в соответствующий индекс в arr1, либо в новый массив. Кроме того, элементы массива должны либо быть числами в первую очередь, либо вам нужно преобразовать их в числа в цикле. С ними оба являются строками, вы просто объединяете их, а не добавляете их.

var arr1 = [20, 35, 50], arr2 = [5, -5, 10], finalArr = []; 
for (var i = 0; i < arr1.length; i++) { 
    finalArr.push(arr1[i] + arr2[i]); 
} 
0

Один простой способ сделать это с помощью Eval творчески, например, так:

var arr1 = ['20', '35', '50']; 

var arr2 = ['+5', '-5', '+10']; 

var result = arr1.map(function(e,i){ 
    return eval(e+arr2[i]); 
}); 

Или, если вы не хотите использовать Eval, то вы можете сделать просто разобрать строку, разбора ИНТ не игнорирует знак.

arr1.map(function(e,i){ 
    return +(e)+(+arr2[i]); 
}); 

http://jsfiddle.net/mjbwbzof/

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