/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Splitte streng til hash
Fra : YJ


Dato : 09-04-06 12:29

Jeg har f.eks. følgende streng:

Pærer,10,Æbler,20

Den vil jeg gerne have lavet om til en hash, så jeg kan skrive:

alert (count["Pærer"]); // Result: 10

(Kender ikke til hashes i Javascript, så syntaksen er nok forkert)

Kan det gøres i et hug, eller skal jeg splitte den til et array og
traversere den og bygge min hash derigennem?

YJ



 
 
Lasse Reichstein Nie~ (09-04-2006)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 09-04-06 14:11

"YJ" <sdf@dsf.sdf> writes:

> Jeg har f.eks. følgende streng:
>
> Pærer,10,Æbler,20
>
> Den vil jeg gerne have lavet om til en hash, så jeg kan skrive:
>
> alert (count["Pærer"]); // Result: 10
>
> (Kender ikke til hashes i Javascript, så syntaksen er nok forkert)

Der er ikke en "hash" i Javascript (eller et map, eller et associativt
array, eller hvad den struktur nu normalt hedder i det sprog man
bruger). Alle objekter kan til gengæld bruges som mappings fra
strenge til værdier, ved at tildele egenskaber til dem.

> Kan det gøres i et hug, eller skal jeg splitte den til et array og
> traversere den og bygge min hash derigennem?

Der skal traverseres, med mindre du ved det er en nyere browser der
kører, så kan du lave et hack der gør det kortere og grimmere[1] (så
lad være med det).
---
/*
* string: en komma-separeret liste af skiftevis nøglestrenge og værdier
* conv: en valgfri konvertering af værdier fra streng til det man skal bruge
*/
function stringToMap(string, conv) {
var strings = string.split(",");
var map = new Object();
for (var i = 0; i < strings.length; i+=2) {
var key = strings[i];
var value = strings[i+1];
map[key] = conv?conv(value):value;
}
return map;
}
---

I dit tilfælde:

var myMap = stringToMap("Pærer,10,Æbler,20",Number);
alert(myMap["Pærer"]+myMap["Æbler"]);


Held og lykke
/L

[1]
function stringToMap2(string,conv) {
var res = {};
string.replace(/([^,]+),([^,]+)(,|$)/g,
function(m,a,b){res[a]=conv?conv(b):b;});
return res;
}
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'

YJ (09-04-2006)
Kommentar
Fra : YJ


Dato : 09-04-06 15:56


"Lasse Reichstein Nielsen" <lrn@hotpop.com> wrote in message
news:64lirj0e.fsf@hotpop.com...
> "YJ" <sdf@dsf.sdf> writes:
>
> > Jeg har f.eks. følgende streng:
> >
> > Pærer,10,Æbler,20
> >
> > Den vil jeg gerne have lavet om til en hash, så jeg kan skrive:
> >
> > alert (count["Pærer"]); // Result: 10
> >
> > (Kender ikke til hashes i Javascript, så syntaksen er nok forkert)
>
> Der er ikke en "hash" i Javascript (eller et map, eller et associativt
> array, eller hvad den struktur nu normalt hedder i det sprog man
> bruger). Alle objekter kan til gengæld bruges som mappings fra
> strenge til værdier, ved at tildele egenskaber til dem.


Er du gal et udførligt svar

Jeg lærte en masse og har fået det implementeret. Mange tak!

YJ



Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408188
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste