2013-12-13 23 views
6

en bu dizi var diyelim:Javascript: Slice() ile diziden tüm ancak bir öğe seçin.

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

ben c hariç dizideki her öğeyi seçmek istiyorum.

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

Bu yalnızca d ve e'yi seçer. Yapmam gerekir:

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

Bu d, e, a ve b seçer ANCAK Seçimim şimdi e ve aralarında virgül olmadan yazılır beri çıkış, bir seçici olarak kullanılabilir değil: "d, ea, b "

Bunu çözmenin bir yolunu biliyor musunuz? Belki negatif sayılarla?

Yardımlarınız için çok teşekkürler! Lee

cevap

9

kullanımı concat:

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

bu dizi [d,e,a,b] olarak değerlendirilir. size sadece endeksi 2 ile dizi öğesini kaldırmak istiyor biliyorsanız Tabii

, ardından yapın:

myarray.splice(2,1) 

myarray şimdi [a,b,d,e] olduğunu.

1

Kullanım ekleme:

myArray.splice(key, 1); 

istenmeyen satırda olduğunu kaldırır.

+1

Bu önemli bu mutasyon dikkat etmek orijinal dizi. –

2

Sen splice yerine edebilirsiniz: Orijinal dizisi ile uğraşmak istemiyorsanız

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

Eğer slice bir kopyasını yapmak için yapabilirsiniz sonra splice

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

bunun ikinci kısmı gönderildiği gibi geri dönmez, arr = ['a', 'b', 'c', 'd', 'e']; var seçici = arr.slice() ekleme (2,1); -> seçici yeniden ['c']; –

+0

Haklısınız. Bunu düzeltmek için düzenledim. –

İlgili konular