varsayalım öylesine gibi, bir JavaScript dizisi var: Ben diziyi sıralamak istediğinizJavaScript: orijinal unsurları bakımından sıralanmış elemanların konumunu gösterir diziyi sıralar ve indicies dizisi dönmek
var test = ['b', 'c', 'd', 'a'];
. Açıkçası, ben sadece dizi sıralamak yapabilirsiniz:
test.sort(); //Now test is ['a', 'b', 'c', 'd']
Ama benim gerçekten istediğiniz orijinal unsurları bakımından sıralanmış elemanların konumunu gösterir endeksleri bir dizidir. Bunu nasıl ifade edeceğimi tam olarak bilmiyorum, belki de bu yüzden nasıl yapılacağını bulmakta zorlanıyorum.
böyle bir yöntem adı ise sortIndices(), o zaman ister ne olduğu:, 'b', 0 ° C'de
var indices = test.sortIndices();
//At this point, I want indices to be [3, 0, 1, 2].
'bir 3' konumundaki olduğu
olduğu, 'c' 1 de ve 'd' orijinal dizide 2 idi. Böylece, [3, 0, 1, 2].Bir çözüm dizinin bir kopyasını sıralamak ve sonra sıralanmış diziyi dolaşmak ve her dizinin orijinal dizisindeki konumunu bulmak olacaktır. Ama bu rahatsız edici hissettiriyor.
İstediğimi yapan mevcut bir yöntem var mı? Eğer değilse, bunu yapan bir yöntem yazmaktan nasıl vazgeçersiniz?
+1 Ancak bence bir dizi için in 'in' loop kullanmamalısınız. – Tomalak
Bu iyi bir fikir. Bunu deneyeceğim. (Çalıştığımda bunu kabul edeceğim.) – Jeremy
@Tomalak: Sizinle ilgili olarak size katılıyorum .. İçeride çok fazla sorunla karşılaştım. – Jeremy