2014-09-03 89 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,表示插入数据的下一个(或最后一个)索引。

相关问题