2016-04-24 4 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", "разрешение": "п"}}, { "ключ": { "ID": 2, «вид»: «Таблица», «путь»: [«Таблица», 2]}, «данные»: {«txt»: «some txt», «modified»: 1461294953, «cat1»: «a1», "разрешение": "п"}}, { "ключ": { "ID": 3, "вид": "стол", "путь": [ "стол", 3]}, "данные": { "TXT ":" some txt "," modified ": 1461294954," cat1 ":" a1 "," permission ":" n "}}, {" key ": {" id ": 4," kind ":" Table "," path ": [" Таблица ", 4]}," data ": {" txt ":" some txt "," modified ": 1461294954," cat1 ":" a1 "," permission ":" n "}}, {" key ": {" id ": 5," kind ":" Таблица "," path ": [" Таблица ", 5]}," data ": {" txt ":" some txt »,« modified »: 1461294954,« cat1 »:« a1 »,« permission »:« n »}}, [{" key ": {" id ": 6," kind ":" Table "," path ": [" Таблица ", 6]}," данные ": {" txt ":" some txt "," modified ": 1461294954," cat1 ":" a1 "," permission ":" n "}}, {"key": {"id": 7, "kind": "Таблица", "path": ["Таблица", 7]}, "data": {"txt": "some txt", "modified ": 1461294954," cat1 ":" a1" , "разрешение": "п"}}, { "ключ": { "ID": 8, "вид ":" Таблица "," путь ": [" Таблица ", 8]}," данные ": {" txt ":" some txt "," modified ": 1461294954," cat1 ":" a1 "," permission ":" п "}}, {" ключ ": {" ID ": 9," вид ":" стол», "путь": [ "стол", 9]}, "данные": { "TXT": "some txt", "modified": 1461294955, "cat1": "a1", "permission": "n"}}, {"key": {"id": 10, "kind": "Table", " «путь»: [«Таблица», 10]}, «данные»: {«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.apply, если вы не хотите создавать новый массив. Array.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); 
Смежные вопросы