4
var newlist = list.slice( 0, pos ).concat( tasks ).concat( list.slice( pos ) );

これは私がそれを見ているだけで震えます。

4

3 に答える 3

2

Arrayにはスプライスメソッドがあります。

于 2010-09-03T19:07:05.277 に答える
1

元の配列を変更したくない場合は、次のように少し短くすることができます。

var newlist = ​list.slice(0,pos).concat(tasks,list.slice(pos));

http://jsfiddle.net/RgYPw/

于 2010-09-03T19:18:48.303 に答える
0

あなたの方法は他の方法と同じくらい優れています.2番目の配列の各メンバーを個別にスプライスする必要があります.

var list=[1,2,3,4,5,6,7,8,9], tasks= ['a','b','c'], pos=3;


while(tasks.length ) list.splice(pos,0,tasks.pop());

alert(list.join('\n'))

/*  returned value:
1
2
3
a
b
c
4
5
6
7
8
9
*/
于 2010-09-03T21:33:30.393 に答える