From: agendum97 on
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
From: Richard Cornford on
<agendum97(a)gmail.com> wrote:
> 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.