PHP.EE FOORUM   
Nimi:   Pass:   Mäleta mind! 
   Teemad | php.ee esilehele | registreeri | Märgi kõik teemad loetuks | #php.ee Skype vestlus | RSS
UUS TEEMA  OTSI  Lehekülgi: 1
Javascript array ja sorditud tekst
Postitaja: joker 2013-09-18 19:43:55
Javascript array, sorditud location_name järgi.

Array näeb välja umbes selline ...

"161":
{"location_name":"ABC Pitku00e4lahti. Vitostie 1779, 70800 Kuopio","longitude":"27.607328","latitude":"62.837199"},
"13":{"location_name":"Airport. Teknikontie 4, 01530 Vantaa", ...

Nüüd kui ma hakkan javascriptiga väärtusi kirjutama ...

$.each(locations, function(key, value)
{
//If exist values, display them
if (value['location_name'].indexOf(find) > -1 || find == '')
{
//If exist values, display them
$('#location_id')
.append($("<option></option>")
.attr("value",key)
.text(value['location_name']));
}
});



Kui kirjutan $.each'iga optioni, siis sorditakse array ringi ID järgi. Kuidas säilitada sortimine location_name järgi?

Viimati muudetud: 18-09-2013 19:44:30
Muutja: joker
Põhjus:

RE: Javascript array ja sorditud tekst
Postitaja: blaa 2013-09-19 09:18:05
Proovi numbrilised indeksid ära muuta, nt "_161".
Ma ei ole jqeryga väga tuttav, võibolla on mingi for võimalus ka. FF ja Chrome käituvad ka pisut erinevalt, näiteks for (x in a) Chromes ei toimi sama moodi nagu Firefoxis, peab kasutama for (x=0;..a.length;..).
RE: Javascript array ja sorditud tekst
Postitaja: lost in scope 2013-09-19 11:55:59
http://www.javascriptkit.com/javatutors/arraysort2.shtml#.Uj

PHP kood:
 
var locations =[];
locations[161] = {"location_name":"ABC Pitku00e4lahti. Vitostie 1779, 70800 Kuopio","longitude":"27.607328","latitude":"62.837199"};
locations[13] = {"location_name":"Airport. Teknikontie 4, 01530 Vantaa""longitude":"27.607328","latitude":"62.837199"};
locations.sort(function(ab){
 var 
nameA=a.location_name.toLowerCase(), nameB=b.location_name.toLowerCase()
 if (
nameA nameB//sort string ascending
  
return -
 
if (nameA nameB)
  return 
1
 
return //default return value (no sorting)
});
RE: Javascript array ja sorditud tekst
Postitaja: Poiss 2013-09-19 18:14:14
TSITEERITUD:
Proovi numbrilised indeksid ära muuta, nt "_161".
Ma ei ole jqeryga väga tuttav, võibolla on mingi for võimalus ka. FF ja Chrome käituvad ka pisut erinevalt, näiteks for (x in a) Chromes ei toimi sama moodi nagu Firefoxis, peab kasutama for (x=0;..a.length;..).


Emm, äkki täpsustad mis ei toimi? Just tegin prooviks järgmise tsükli:


var o = {
a : 1,
b : 2
}

for (var i in o){
alert(i);
}



ja töötas igalpool samamoodi.
RE: Javascript array ja sorditud tekst
Postitaja: blaa 2013-09-19 18:37:57
proovi siis seda ka

var o = {
"161":{"location_name":"ABC Pitku00e4lahti"},
"13":{"location_name":"Airport. Teknikontie 4, 01530 Vantaa"},
}

for (var i in o){
alert(i);
}
RE: Javascript array ja sorditud tekst
Postitaja: Poiss 2013-09-19 19:57:23
[tsitaat]proovi siis seda ka

var o = {
"161":{"location_name":"ABC Pitku00e4lahti"},
"13":{"location_name":"Airport. Teknikontie 4, 01530 Vantaa"},
}

for (var i in o){
alert(i);
}[/tsitaat

Proovisin, Firefox - OK, Chrome - OK, IE9 - OK
RE: Javascript array ja sorditud tekst
Postitaja: blaa 2013-09-19 23:53:55
mnjaa, ei õnnestu ka enam erinevusi tekitada, brauserid on vist vahepeal muutunud, kui selle probleemiga viimati kokku puutusin.
Aga siin natuke pikemalt
http://stackoverflow.com/questions/5020699/how-do-you-stop-c

Leheküljed: 1

©2002-2013 Martin Rebane & PHP.ee kaasautorid
  0.079910993576