2013-08-16 19 views
6

私は配列を持っています。私は配列の中のいくつの要素を最後に残さなければならないかを示す変数を持っています。それを行う関数はありますか?例:配列から最後のN個の要素を除くすべての要素を削除するにはどうすればよいですか?

var arr = [1, 2, 3, 4, 5]; 
var n = 2; 
arr = someFunction(n); // arr = [4, 5]; 

最後にn要素を含む配列が必要です。

+8

[Array.slice](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice)? 'arr.slice(-2)'は '[4,5]'を返します。 –

+0

'.splice()'を見てください。 –

+0

'arr = arr.slice(〜n + 1);' – adeneo

答えて

16

スライス方法があなたの望むものです。新しいオブジェクトを返すので、既存のオブジェクトを新しいオブジェクトに置き換える必要があります。

arr = arr.slice(-1 * n); 

また、既存の配列をsplice()に変更してください。

arr.splice(0, arr.length - n); 

スプライスは、要素をコピーしていないため、効率的です。

+10

'-1 * n'の代わりに' -n'を実行するだけでよいのです。 – Pluto

+2

あなたが好むものは何でも。 – Craig

+1

これが誰かにとって意味をなさないかどうかを明確にするために、 'splice'は最初の要素セットを返しますが、**それらを実際の配列からも削除します**。詳細:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/splice –

関連する問題