fredag, januar 22, 2021

JS String Replace

Daily Rush Debat Programmering JS String Replace

  • Forfatter
    Emne
  • #0

    TheRaz
    Bruger
    9.294 indlæg
    Offline

    Findes der en funktion i JS hvor man kan lave char replace på en specifik plads i et index af tegn?

    F.eks:
    str.replace.At(“Position”, tal-værdi-der-skal-skiftes-til) og udskifte tegnet kun på denne “position”?

    Billedeksempel længere nede:

    Tal-rækken tages fra et input felt og smides i en variabel.

    18 er positionen af et-tallet.

    Så findes et-tallet i tal-rækken med indexOf og skiftes så til 0 med str.replace

    Istedet for funktionen med substr + ‘x’ + substr, findes der så en løsning?

    For jeg ender med en string på kun 0-taller. Ved ikke om jeg forklarer det godt nok.

    Billede:

    http://fc05.deviantart.net/fs71/f/2014/132/2/1/js_string_replace_by_r_a_z_z-d7i2hdv.jpg

    Jeg har atomer i bukserne. Og så kan man desuden aldrig få CPU'er nok. Det er ganske enkelt naturvidenskabeligt umuligt.

Viser 9 kommentarer - 1 til 9 (af 9 i alt)
  • Forfatter
    Kommentarer
  • #1

    Zaxxa
    Bruger
    376 indlæg
    Offline
    #2

    TheRaz
    Bruger
    9.294 indlæg
    Offline

    #1
    hehe der jeg har sakset substr + ‘x’ + substr løsningen fra

    Læste længere i tråden at arrayløsning er langt hurtigere, så prøver måske det istedet for. Forstår bare ikke hvorfor der ikke findes en str.replaceAt form for løsning i selve replace() objectet.

    Må læse lidt mere i den tråd. Thx!

    Jeg har atomer i bukserne. Og så kan man desuden aldrig få CPU'er nok. Det er ganske enkelt naturvidenskabeligt umuligt.

    #3

    TheRaz
    Bruger
    9.294 indlæg
    Offline

    Nåmen den findes så ikke.

    Alle løsningerne i tråden er grundlæggende de samme. STregen deles op på en eller anden måde, og sættes så sammen igen med ny værdi + dennes position.

    Ville være fedt hvis den var bygget ind i objectet…den lader til at være eftertragtet ;DD

    Så ender med den samme løsning. Arrayløsningen er hurtigere, men primært på relativt store strings og det her drejer sig få tegn.

    Jeg har atomer i bukserne. Og så kan man desuden aldrig få CPU'er nok. Det er ganske enkelt naturvidenskabeligt umuligt.

    #4

    Kolben
    Bruger
    18.939 indlæg
    Offline

    Strenge i JS er immutable primitives, så at lave en ny streng er den eneste løsning der kan eksistere.

    P=NP?

    #5

    brwnx
    Bruger
    3.609 indlæg
    Offline

    en løsning

    Læs det med småt

    #6

    TheRaz
    Bruger
    9.294 indlæg
    Offline

    #4
    En derinde skriver det du nævner. Har først nu forstået nogenlunde hvad begrebet dækker over. Tror jeg da.

    Altså hvis det er en grundlæggende “hardwired” funktion i JS der ikke kan ændres i sin grundform, så forstår jeg bare stadig ikke at man ikke har inkluderet muligheden for at håndplukke en specifik værdi i et index? Når det nu er muligt at gøre det med, lad os sige 8 af samme tegn spredt rundt omkring i en tegnrække?

    Det er både en brugbar primitiv at have? + den er effektiv ressourcemæssigt. Der kan hoppes direkte til en pos og hives en værdi ud? Kan man også med et array men her kan det gøres med en “rå”-streng udeom en array, som så først skal laves.

    Sikker t et eller andet jeg misser i det her lol

    Uanset hvad nævner han det du er inde på.

    Jeg har atomer i bukserne. Og så kan man desuden aldrig få CPU'er nok. Det er ganske enkelt naturvidenskabeligt umuligt.

    #7

    TheRaz
    Bruger
    9.294 indlæg
    Offline

    #5
    Meget snedigt

    Er det ok at jeg låner den lidt? ;D Jeg får brug for funktionen en del steder nemlig.

    Ok humor Fandt en anden løsning men den skal laves til en prototype som den du har lavet.

    Meningen er at nulstille hele rækken til 0’er, men skulle finde en måde at omgås nogle ting på før det ville virke.

    Hælder 0’er i .value og laver så det substr bagefter. Tal-rækken er en række af on/off – “kontakter” hvis tilstand skal gemme i localstorage ved ændringer og app-exit.

    Tak for input fadnt en løsning på det tilsidst.

    Jeg har atomer i bukserne. Og så kan man desuden aldrig få CPU'er nok. Det er ganske enkelt naturvidenskabeligt umuligt.

    #8

    Kolben
    Bruger
    18.939 indlæg
    Offline

    #6
    At gøre strenge immutable har den fordel at man ikke skal tænke på om indholdet er ændret, hvis man f.eks. har to variable, der refererer til samme streng, f.eks. på tværs af funktionskald. Det er et designvalg man har taget, hvor man har vejet semantikken højere end køretid.

    En replace function, der skal lave en ny streng med en masse ændringer i er en større operation end at udskifte et enkelt tegn på en given plads. Derfor giver der mere mening at have sådan en operator end den anden. Man kan dog sagtens argumentere for at der også burde være en operator til at udskifte 1 tegn, men når løsningen i forvejen er en one-liner, der gør det samme som operatoren ellers ville gøre, så er der ikke rigtigt nogen grund til det. Så er det efter min mening bedre at undlade at holde programmøren i hånden.

    P=NP?

    #9

    Zaxxa
    Bruger
    376 indlæg
    Offline

    #7 Tror det er Cem Kalyoncu (første post fra linket i #1) fra stackoverflow du skal spørge, hvis det er

Viser 9 kommentarer - 1 til 9 (af 9 i alt)
  • Du skal være logget ind for at kommentere på dette indlæg.