2013-12-13 6 views
6

のは、私はこの配列を持っているとしましょう:Javascript:slice()を含む配列から1つを除くすべてを選択しますか?

var myarray = [a, b, c, d, e]; 

は、私はCを除いて、配列内のすべての項目を選択します。

var myselection = myarray.slice(3,5); 

これは、dとeのみを選択します。私がしなければならないでしょう:

var myselection = myarray.slice(3,5) + myarray.slice(0,2); 

これはD、E、A、Bを選択するが、マイセレクトは今Eとの間にカンマなしで書かれているので出力は、セレクタとして使用できません:「D、 ea、b "

これを解決する方法はありますか? 多分負の数値ですか?

ありがとうございました! リー

答えて

9

使用CONCAT:

myarray.slice(3,5).concat(myarray.slice(0,2)) 

これは、アレイ[d,e,a,b]と評価されます。もちろん

あなたはあなただけのインデックス2と配列要素を削除したい知っていれば、その後の操作を行います。

myarray.splice(2,1) 

myarrayは今[a,b,d,e]です。

1

使用スプライス:

myArray.splice(key, 1); 

それは不要な行を削除します。

+1

それは、この突然変異していることに注意することが重要です元の配列 –

2

あなたはできsplice代わりに:

arr = ['a','b','c','d','e']; 
arr.splice(2,1); 
--> arr == ['a','b','d','e']; 

コピーを作成することができます元の配列sliceを台無しにしたくない場合は、その後splice

arr = ['a','b','c','d','e']; 
var selector = arr.slice(); 
selector.splice(2,1); 
--> selector == ['a','b','d','e']; 
+1

投稿したとおり、この2番目の部分は返信されません。 arr = ['a'、 'b'、 'c'、 'd'、 'e']; var selector = arr.slice()。スプライス(2,1); - >セレクタはreutrn ['c']; –

+0

あなたはそうです。私は正しいように編集しました。 –