2013-06-15 8 views
18

üzerine diziden değer Çıkarma değer.Ben bu konuda konuların bir sürü yeri ama bu farklı inanıyoruz belirli bir konuma

Ben bir öğe kaldırmak için John Resig (jQuery yaratıcısı) tarafından bu bölümü kullanın ama ben

Array.prototype.remove = function(from, to) { 
var rest = this.slice((to || from) + 1 || this.length); 
this.length = from < 0 ? this.length + from : from; 
return this.push.apply(this, rest); 
}; 

bu onu kullanmak nasıl verecek konuma dinlemek görünmüyor

var elements = ['#1','#2','#3','#4'] 
var R1 = Math.floor(Math.random() * elements.length), 
E1 = elements.slice(R1,1) 
elements.remove(R1) 
var R2 = Math.floor(Math.random() * elements.length), 
E2 = elements.slice(R2,1) 
elements.remove(R2) 
var R3 = Math.floor(Math.random() * elements.length), 
E3 = elements.slice(R3,1) 
elements.remove(R3) 
var R4 = Math.floor(Math.random() * elements.length), 
E4 = elements.slice(R4,1) 

Sorun çıkar işlevidir, bir nesneyi belirli bir konumdan kaldırırken işe yaramazsa, inanıyorum.

+1

ile devam ettirebilirsiniz. Bu tam olarak John Resig'in (jQuery'nin yaratıcısı) yazdığı aynı uygulama. – barndog

+0

öyle, ilk kısmı burada bahsetmediğim için üzgün buldum, burada yeniyim – GdeBrock

+0

Kodunuz ne yapmalı? – georg

cevap

4

elements.slice(R3,1) kullanıyorsunuz. İkinci argüman, almak istediğiniz dizinin uzunluğunu değil, dilim yönteminin durması gereken elemanın sıfır tabanlı dizinini ifade eder. Bu yüzden kodunuz "Endeks R3'ten indeks 1'e kadar elementleri verin" ve çalışacağı tek zaman: elements.slice(0, 1). Sadece bir eleman almanız gerekiyorsa - elements[R1]'u kullanın. Bir eleman ile dizi almanız gerekiyorsa, dilim dilimini elements.slice(R1, R1 + 1);

+0

farklı kombinasyonu almak için tring, teşekkürler! – GdeBrock