I have a problem concatenating two associative arrays in JavaScript. Below is the sample code:
var firstArray = new Array();
firstArray.c1 = "sam";
firstArray.c2 = "kam";
var secArray = new Array();
secArray.c3 = "sam";
secArray.c4 = "kam";
var res = firstArray.concat(secArray);
Is this a known limitation?
What's the best way to achieve this?
You are not using Array
functionality - just Object
functionality. In JavaScript, Object
is an associative array - you use Array
for arrays indexed by integers. If you did
var firstArray = new Array();
firstArray.push("sam");
firstArray.push("kam");
var secArray = new Array();
secArray.push("sam");
secArray.push("kam");
var res = firstArray.concat(secArray);
then concat
would work as expected.
If you actually want to merge associative arrays, do:
for (var attr in src_array) { dest_array[attr] = src_array[attr]; }
This will of course overwrite existing keys in dest_array
which have counterparts in src_array
.
Try this:
var firstArray = new Array("sam", "kam");
var secArray = new Array("sam", "kam");
var res = firstArray.concat(secArray);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With