1. ホーム
  2. javascript

[解決済み] インデックスの後にあるすべての項目を削除する

2023-05-26 18:24:58

質問

配列があります。

array = ['mario','luigi','kong']

私は、その スプライス 関数を呼び出すと、すべての項目が削除されます。 インデックスの前にある :

array.splice(1) //-> ['luigi','kong']

に似たような機能がないかと考えています。 スプライス を使えば、すべての項目を削除することができます。 インデックスの後に :

擬似コード

array.mirrorsplice(1) //-> ['mario','luigi']

どのように解決するのですか?

使用方法 Array.length を使用して配列の新しいサイズを設定します。 Array.splice を使用して変異させるよりも高速です。

var array = ['mario','luigi','kong', 1, 3, 6, 8];
array.length=2;
alert(array); // shows "mario,luigi";

なぜ速くなったのか?それは .splice は削除されたすべての項目を含む新しい配列を作成しなければならないのに対して .length は何も作成せず、新しい配列の代わりに数値を返します。

アドレスに .splice の使い方に対処するために、負のインデックスを与え、さらに配列の最後を切り落とすために巨大な数を与えることができます。

var array = ['mario','luigi','kong'];
array.splice(-1, 9e9); 
alert(array); // shows "mario,luigi";