2016-04-24 116 views
0

我有一个数组我在开始时:合并这2个阵列

var array1 = [{"key":{"id":1,"kind":"Table","path":["Table",1]},"data":{"txt":"some txt","modified":1461294950,"cat1":"a1","permission":"n"}}, 
{"key":{"id":2,"kind":"Table","path":["Table",2]},"data":{"txt":"some txt","modified":1461294953,"cat1":"a1","permission":"n"}}, 
{"key":{"id":3,"kind":"Table","path":["Table",3]},"data":{"txt":"some txt","modified":1461294954,"cat1":"a1","permission":"n"}}, 
{"key":{"id":4,"kind":"Table","path":["Table",4]},"data":{"txt":"some txt","modified":1461294954,"cat1":"a1","permission":"n"}}, 
{"key":{"id":5,"kind":"Table","path":["Table",5]},"data":{"txt":"some txt","modified":1461294954,"cat1":"a1","permission":"n"}}]; 

该阵列具有5个元素。然后我从我的服务器获得5个更多的结果。我想将这个新数组添加到现有的。

所以我接受这个从我的服务器:

var server_response = [{"key":{"id":6,"kind":"Table","path":["Table",6]},"data":{"txt":"some txt","modified":1461294954,"cat1":"a1","permission":"n"}}, 
{"key":{"id":7,"kind":"Table","path":["Table",7]},"data":{"txt":"some txt","modified":1461294954,"cat1":"a1","permission":"n"}}, 
{"key":{"id":8,"kind":"Table","path":["Table",8]},"data":{"txt":"some txt","modified":1461294954,"cat1":"a1","permission":"n"}}, 
{"key":{"id":9,"kind":"Table","path":["Table",9]},"data":{"txt":"some txt","modified":1461294955,"cat1":"a1","permission":"n"}}, 
{"key":{"id":10,"kind":"Table","path":["Table",10]},"data":{"txt":"some txt","modified":1461294955,"cat1":"a1","permission":"n"}}]; 

因此合并它们,我去:

console.log(array1.push(server_response); 

但我得到以下结果:

[{“键“:{”id“:1,”kind“:”Table“,”path“:[”Table“,1]},”data“:{”txt“:”some txt“,”modified“:1461294950 “CAT1”: “A1”, “许可”: “N”}},{ “键”:{ “ID”:2, “kind”:“Table”,“path”:[“Table”,2]},“data”:{“txt”:“some txt”,“modified”:1461294953,“cat1” “许可”: “N”}},{ “键”:{ “ID”:3 “一种”: “表”, “路径”:[ “表”,3]}, “数据”:{“TXT “:”some txt“,”modified“:1461294954,”cat1“:”a1“,”permission“:”n“}},{”key“:{”id“:4,”kind“:”Table “,”path“:[”Table“,4]},”data“:{”txt“:”some txt“,”modified“:1461294954,”cat1“:”a1“,”permission“:”n “}”,{“key”:{“id”:5,“kind”:“Table”,“path”:[“Table”,5]},“data”:{“txt” “,”修改“:1461294954,”cat1“:”a1“,”权限“:”n“}},[{”key“:{”id“:6,”kind“:”Table“,”path “:[”Table“,6]},”data“:{”txt“:”some txt“,”modified“:1461294954,”cat1“:”a1“,”permission“:”n“}} {“key”:{“id”:7,“kind”:“Table”,“path”:[“Table”,7]},“data”:{“txt”:“some txt”,“modified “:1461294954,” CAT1 “:” A1" , “许可”: “N”}},{ “关键”:{ “ID”:8,“种“:”Table“,”path“:[”Table“,8]},”data“:{”txt“:”some txt“,”modified“:1461294954,”cat1“:”a1“ “:” N “}},{” 键 “:{” ID “:9”,一种 “:” 表”, “路径”:[ “表”,9]}, “数据”:{ “TXT”: “some txt”,“modified”:1461294955,“cat1”:“a1”,“permission”:“n”}},{“key”:{“id”:10,“kind”:“Table” “path”:[“Table”,10]},“data”:{“txt”:“some txt”,“modified”:1461294955,“cat1”:“a1”,“permission”:“n”} }]]

正如你所看到的,它将第二个数组作为实际数组添加到第一个数组。我只想添加服务器响应的内容(基本上不应该有方括号)。我知道我可以使用正则表达式来做到这一点,但这似乎不是一个好的解决方案。我怎样才能合并这些数组?

回答

6

我相信你正在寻找concat

var array1 = [{"key":{"id":1,"kind":"Table","path":["Table",1]},"data":{"txt":"some txt","modified":1461294950,"cat1":"a1","permission":"n"}}, 
{"key":{"id":2,"kind":"Table","path":["Table",2]},"data":{"txt":"some txt","modified":1461294953,"cat1":"a1","permission":"n"}}, 
{"key":{"id":3,"kind":"Table","path":["Table",3]},"data":{"txt":"some txt","modified":1461294954,"cat1":"a1","permission":"n"}}, 
{"key":{"id":4,"kind":"Table","path":["Table",4]},"data":{"txt":"some txt","modified":1461294954,"cat1":"a1","permission":"n"}}, 
{"key":{"id":5,"kind":"Table","path":["Table",5]},"data":{"txt":"some txt","modified":1461294954,"cat1":"a1","permission":"n"}}]; 
var server_response = [{"key":{"id":6,"kind":"Table","path":["Table",6]},"data":{"txt":"some txt","modified":1461294954,"cat1":"a1","permission":"n"}}, 
{"key":{"id":7,"kind":"Table","path":["Table",7]},"data":{"txt":"some txt","modified":1461294954,"cat1":"a1","permission":"n"}}, 
{"key":{"id":8,"kind":"Table","path":["Table",8]},"data":{"txt":"some txt","modified":1461294954,"cat1":"a1","permission":"n"}}, 
{"key":{"id":9,"kind":"Table","path":["Table",9]},"data":{"txt":"some txt","modified":1461294955,"cat1":"a1","permission":"n"}}, 
{"key":{"id":10,"kind":"Table","path":["Table",10]},"data":{"txt":"some txt","modified":1461294955,"cat1":"a1","permission":"n"}}]; 
console.log(array1.concat(server_response)); 
+0

感谢这就是我一直在寻找!这是我认为推动做的,但看起来不是。 – user2924127

1

我想追加这个新的数组到现有的。

如果您不想创建新阵列,则可以使用Array.prototype.push.applyArray.prototype.push.apply将更新您的array1,其内容为server_push

见下文:

var array1 = [{"key":{"id":1,"kind":"Table","path":["Table",1]},"data":{"txt":"some txt","modified":1461294950,"cat1":"a1","permission":"n"}}, 
 
{"key":{"id":2,"kind":"Table","path":["Table",2]},"data":{"txt":"some txt","modified":1461294953,"cat1":"a1","permission":"n"}}, 
 
{"key":{"id":3,"kind":"Table","path":["Table",3]},"data":{"txt":"some txt","modified":1461294954,"cat1":"a1","permission":"n"}}, 
 
{"key":{"id":4,"kind":"Table","path":["Table",4]},"data":{"txt":"some txt","modified":1461294954,"cat1":"a1","permission":"n"}}, 
 
{"key":{"id":5,"kind":"Table","path":["Table",5]},"data":{"txt":"some txt","modified":1461294954,"cat1":"a1","permission":"n"}}]; 
 

 
var server_response = [{"key":{"id":6,"kind":"Table","path":["Table",6]},"data":{"txt":"some txt","modified":1461294954,"cat1":"a1","permission":"n"}}, 
 
{"key":{"id":7,"kind":"Table","path":["Table",7]},"data":{"txt":"some txt","modified":1461294954,"cat1":"a1","permission":"n"}}, 
 
{"key":{"id":8,"kind":"Table","path":["Table",8]},"data":{"txt":"some txt","modified":1461294954,"cat1":"a1","permission":"n"}}, 
 
{"key":{"id":9,"kind":"Table","path":["Table",9]},"data":{"txt":"some txt","modified":1461294955,"cat1":"a1","permission":"n"}}, 
 
{"key":{"id":10,"kind":"Table","path":["Table",10]},"data":{"txt":"some txt","modified":1461294955,"cat1":"a1","permission":"n"}}]; 
 

 
Array.prototype.push.apply(array1, server_response); 
 

 
document.body.textContent = JSON.stringify(array1);

2

尝试concat方法...

MergedArray=Array1.concat(Array2,Array3,Array4);