I wanted to add the elements of an array into another, so I tried this:
[1,2] + [3,4]
It responded with:
\"1,23,4\"
It's converting the individual arrays to strings, then combining the strings.
Another result using just a simple "+" sign will be:
[1,2]+','+[3,4] === [1,2,3,4]
So something like this should work (but!):
var a=[1,2];
var b=[3,4];
a=a+','+b; // [1,2,3,4]
... but it will convert the variable a from an Array to String! Keep it in mind.
It adds the two arrays as if they were strings.
The string representation for the first array would be "1,2" and the second would be "3,4". So when the +
sign is found, it cannot sum arrays and then concatenate them as being strings.
The +
concats strings, so it converts the arrays to strings.
[1,2] + [3,4]
'1,2' + '3,4'
1,23,4
To combine arrays, use concat
.
[1,2].concat([3,4])
[1,2,3,4]
[1,2]+[3,4]
in JavaScript is same as evaluating:
new Array( [1,2] ).toString() + new Array( [3,4] ).toString();
and so to solve your problem, best thing would be to add two arrays in-place or without creating a new array:
var a=[1,2];
var b=[3,4];
a.push.apply(a, b);
In JavaScript, the binary addition operator (+
) performs both numerical addition and string concatenation. However, when it's first argument is neither a number nor a string then it converts it into a string (hence "1,2
") then it does the same with the second "3,4
" and concatenates them to "1,23,4
".
Try using the "concat" method of Arrays instead:
var a = [1, 2];
var b = [3, 4];
a.concat(b) ; // => [1, 2, 3, 4];