2014-09-03 86 views
0
var a=[{"id":1, "name":"aaa", "age":31}, {"id":2, "name":"bbb", "age":23}, {"id":3, "name":"ccc", "age":24}] 

var b=[{"id":4, "name":"ddd", "age":43}] 

var result=[{"id":1, "name":"aaa", "age":31}, {"id":2, "name":"bbb", "age":23}, {"id":3, "name":"ccc", "age":24}, {"id":4, "name":"ddd", "age":43}] 

我想插入b到索引3.任何人都知道這一個?插入對象數組到最後一個索引使用jquery

+0

你應該檢查這個: - http://api.jquery.com/append/ – 2014-09-03 07:12:01

回答

1
var result = a; 
result.push(b[0]); 
+0

良好的調用,但它只適用於只有一個項目在b – Greg 2014-09-03 07:20:09

+0

是的,你可以使用apply()或call()方法但OP沒有提到,所以我只是回答說... – 2014-09-03 07:21:03

1

a.push.apply(a, b)

這將調用數組的push方法與儘可能多的論據,有基於B項,也就是說a.push(b[0], b[1], b[2], ...)

平原JS,沒有jQuery的需要:)

PS:請注意,修改a。 如果你不希望這樣,那麼你可以先用Array.slice克隆它:

var result = a.slice(); 
result.push.apply(this, b); 
0

請檢查下面的代碼

var result = a.concat(b); 
+0

這不會產生公關期望的結果,他將有一個數組作爲最後一個項目(b是一個數組) – Greg 2014-09-03 07:19:39

+1

@Greg Concat函數將連接兩個數組並創建一個新數組 – sameer 2014-09-03 07:22:23

+0

其實你是對@sameer,如果目標不是修改'a'這是一個很好的答案。 – Greg 2014-09-03 07:29:21

0

請下面的代碼檢查。

var a=[{"id": 1, "name":"aaa","age":31},{"id": 2, "name":"bbb","age":23},{"id": 3,name:"ccc","age":24}] 
var b=[{"id": 4, "name":"ddd","age":43}]; 
function insertInto(index, a, b){ 
    var x = a.splice(index); 
    a = a.concat(b); 
    a = a.concat(x); 
    retrun a; 
} 
a = insertInto(2,a,b); 
0

請檢查下面的代碼

var a = [{ "id": 1, "name": "aaa", "age": 31 }, { "id": 2, "name": "bbb", "age": 23 }, { "id": 3, "name": "ccc", "age": 24}]; 
     var b = [{ "id": 4, name: "ddd", "age": 43}]; 
     var result = a.concat(b); 
1

好的做法是

一個[則爲a.length] = B;

這裏a.length是3,表示插入數據的下一個(或最後一個)索引。

相關問題