|
Prev: FAQ Topic - Why does K = parseInt('09') set K to 0? (2008-06-26)
Next: Regexp: Case-insensitive matching | N factorial
From: agendum97 on 25 Jun 2008 19:02 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 25 Jun 2008 20:02
<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. |