Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]Sortowanie tablicy w javascript, odpowiednik natsort w PHP ???
fiasko
post
Post #1





Grupa: Zarejestrowani
Postów: 243
Pomógł: 1
Dołączył: 1.06.2010

Ostrzeżenie: (0%)
-----


Chcę posortować tablicę asocjacyjną od najmniejszej wartości do największej nie zmieniając dla danej wartości indeksu danego klucza. To w PHP robi natsort .

Jak zrobić to samo w javascript ? Zwykłe sort zmienia indeksy klucza .

tablica do posortowania :

[JAVASCRIPT] pobierz, plaintext
  1. var dane = new Array();
  2.  
  3. dane[0] = 5 ;
  4. dane[3] = 15 ;
  5. dane[2] = 45 ;
  6. dane[34] = 5 ;
  7. dane[5] = 15 ;
  8. dane[13] = 45 ;
[JAVASCRIPT] pobierz, plaintext


oczekiwany wynik w takiej kolejności :



Kod
Array(
[2] => 45 ,
[13] => 45 ,
[0] => 5 ,
[34] => 5 ,
[3] => 15 ,
[5] => 15 );


Ten post edytował fiasko 14.02.2012, 19:19:41
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
pmir13
post
Post #2





Grupa: Zarejestrowani
Postów: 282
Pomógł: 89
Dołączył: 12.04.2011

Ostrzeżenie: (0%)
-----


Możesz objaśnić w jaki sposób ten oczekiwany wynik jest posortowany? Bo wygląda na mocno losową kolejność.
Go to the top of the page
+Quote Post
fiasko
post
Post #3





Grupa: Zarejestrowani
Postów: 243
Pomógł: 1
Dołączył: 1.06.2010

Ostrzeżenie: (0%)
-----


To jest posortowane po wartości, a potem po kluczu. Kolejność klucza nie gra dla mnie roli. Ważne, że klucz z wartością stanowią parę. Zwykłe sort się nie nadaje, bo zmienia kolejność wartości klucza i ustala ją od zera. na koniec odwracam kolejność indeksów i mam wartości od największej do najmierniejszej.

Ten post edytował fiasko 14.02.2012, 21:43:33
Go to the top of the page
+Quote Post
kamil4u
post
Post #4





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

Ostrzeżenie: (0%)
-----


http://phpjs.org/functions/natsort:478 ?


--------------------
Go to the top of the page
+Quote Post
fiasko
post
Post #5





Grupa: Zarejestrowani
Postów: 243
Pomógł: 1
Dołączył: 1.06.2010

Ostrzeżenie: (0%)
-----


Fajnie ale jak ściągnąłem tą funkcję to okazało się że żeby działała potrzebuje on innej funkcji, która to z kolei też potrzebuje innych funkcji . No to ściągnąłem jakiś pakiet php.full.commonjs.min.js który ma 368 kB . Pakiet niestety ma jakieś błędy sam w sobie.



Ten post edytował fiasko 15.02.2012, 10:01:33
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #6





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Eh, gubisz się w najprostszych czynnościach, nie będzie z Ciebie wymiatacza.

http://phpjs.org/functions/natsort:478
Kod
depends on: strnatcmp


http://phpjs.org/functions/strnatcmp:541
Kod
depends on: strcmp


http://phpjs.org/functions/strcmp:533


Łącznie potrzebujesz trzech funkcji. Całego pakietu php.js nie instaluj, bo będą się działy bardzo nieprzyjemne rzeczy.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 07:29