0

i am trying to use the following line block of code

var myarray = [1,2,3,4];
var new_array = [];
myarray.reduce(function(a,b,i) { return new_array[i] = a+b; },0);
// Result = [1, 3, 6, 10]
console.log("original array");
console.log(new_array);

this block works perfectly but when i substitute my own array the result goes is completely wrong

var ar1 = ["1","2","3","4"];
var ar2 = [];
ar1.reduce(function(a,b,i) { return ar2[i] = a+b; },0);
// result = ["01", "012", "0123", "01234"]
console.log("original array");
console.log(ar2);

i get this as my result ["01", "012", "0123", "01234"]

Can anyone help, thanks

1 Answers1

1

try parseInt to convert Number to String before using + operator. String + String is string concatenation, while Number + Number is algebraic addition

var ar1 = ["1","2","3","4"];
var ar2 = [];
ar1.reduce(function(a,b,i) { return ar2[i] = parseInt(a) + parseInt(b); },0);
// result = ["01", "012", "0123", "01234"]
console.log("original array");
console.log(ar2);
TruongSinh
  • 4,662
  • 32
  • 52