splice an array into another array

A

agendum97

MSDN says splice has the following arguments:

arrayObj.splice(start, deleteCount, [item1[, item2[, . . .
[,itemN]]]])

Thus I can insert items into an array using splice. But how do I
insert an entire array? For example:

var arr1 = [];
arr1[0] = "a";
arr2[1] = "d";
var arr2 = [];
arr2[0] = "b";
arr2[1] = "c";
arr1.splice(1, 0, arr2);

Because array arguments in splice dont work like they do in concat,
this expectedly yeilds this for arr1: a,[b,c],d

Without having to use slice and concat which allocates up to three new
arrays, is there anyway to splice one array into another?

Thanks
 
R

Richard Cornford

MSDN says splice has the following arguments:

arrayObj.splice(start, deleteCount, [item1[, item2[, . . .
[,itemN]]]])

Thus I can insert items into an array using splice. But
how do I insert an entire array? For example:

var arr1 = [];
arr1[0] = "a";
arr2[1] = "d";
var arr2 = [];
arr2[0] = "b";
arr2[1] = "c";
arr1.splice(1, 0, arr2);

Because array arguments in splice dont work like they do in
concat, this expectedly yeilds this for arr1: a,[b,c],d

Without having to use slice and concat which allocates up to
three new arrays, is there anyway to splice one array into
another?

I suppose something like:-

arr2.unshift(1, 0); //Adding the start and deleteCount
//to the front of arr2.
arr1.splice.apply(arr1, arr2); //Using the resulting array
// as the array of arguments
// for - apply -.

- shoud do it. Though if you still wanted to use arr2 as it was you
would have to shift the first two values out of it again.

Richard.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,983
Messages
2,570,187
Members
46,747
Latest member
jojoBizaroo

Latest Threads

Top