concat(在JavaScript中)不适用于关联数组

Ram*_*Vel 10 javascript arrays concatenation

我在JavaScript中连接两个关联数组时遇到问题.以下是示例代码:

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);
Run Code Online (Sandbox Code Playgroud)

这是一个已知的限制吗?

实现这一目标的最佳方法是什么?

Vin*_*jip 20

您没有使用Array功能 - 只是Object功能.在JavaScript中,Object是一个关联数组 - Array用于由整数索引的数组.如果你这样做了

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);
Run Code Online (Sandbox Code Playgroud)

然后concat按预期工作.

如果您确实想要合并关联数组,请执行以下操作:

for (var attr in src_array) { dest_array[attr] = src_array[attr]; }
Run Code Online (Sandbox Code Playgroud)

这当然会覆盖dest_array其中包含对应项的现有密钥src_array.