Jeg har en funktion, som skal tage imod et array fyldt med priser i formatet 2.395,00. Funktionen skal nu konvertere alle priser i arrayet til integer og fjerne punktummet og kommaet. Er her nogen som hurtig kan krejle den? /mr.gessle.
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
Mit bud ser sådan ud, men er det ikke sikker på, at den holder i alle situationer:
function konverterPriser(priser) {
var nyStreng = ""; for(i=2; i<priser.length; i=i+5) { var currentPris = priser[i];
for(j=0; j<currentPris.length; j=j+1) { var gemKomma; var gemPunktum; var nyStreng; //find og fjern komma if(currentPris.charAt(j)==".") { //gemmer position gemKomma = j;
det gør den nok ikke. tal over en million har jo 2 . (punktummer) som tusindseparator.
men hvis vi kan STOLE på at . bruges som tusindseparator kan vi blot fjerne alle punktummer med var tempStreng = currentPris.replace( /\./g, "" ); og igen hvis vi kan STOLE på at der altid står et komma med 2 cifre efter kommaet kan vi fjerne det komma med tempStreng = tempStreng.replace( /,/, "" ); nyStreng = tempStreng;
function konverterPriser(priser) {
var nyStreng = ""; for(i=2; i<priser.length; i=i+5) {
var tempStreng = priser[i].replace( /\./g, "" ); var nyStreng = tempStreng.replace( /,/, "" );
priser[i] = nyStreng; // hvis vi ikke gemmer resultatet et sted //kan vi ligesågodt lade være at kalde funktionen }
return priser; // det giever ikke mening at returnere nyStreng //for det er blot den sidste i dit array }
mvh JakobA
Synes godt om
Slettet bruger
12. september 2002 - 17:33#4
Er det ikke nærmere:
function konverter(tal) { tal.replace(/\./g, ""); tal.replace(/,/, "."); return parseFloat(tal); }
Funktionen returnerer et kommatal, så fx 12.345,67 bliver returneret som 12345.67, så JavaScript kan regne med det!
Synes godt om
Slettet bruger
12. september 2002 - 17:34#5
Hvis du absolut vil have et heltal, kan du bare skifte parseFloat ud med parseInt.
Synes godt om
Slettet bruger
12. september 2002 - 17:35#6
For at konvertere et helt array bliver det noget lignende:
function k_array(arr) { for (i = 0; i < arr.length; i++) arr[i] = konverter(arr[i]); return arr; }
Forudsat at du også bruger min anden funktion.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.