TS: replace_nth() auch mit negativer Positionsangabe

Beitrag lesen

Hello,

und nochmal neu mit "occur darf auch negativ sein", dann wird von hinten gezählt.

    function replace_nth(input, search, replace, occur)
    {
        occur = parseInt(occur);
        input = '|' + input + '|';
        var items = input.split(search);
        var result = '';
        
        for(n = 0; n < items.length -1; n++)
        {
            if (occur == 0 || n == occur - 1)
            {
                result += items[n] + replace; 
            }
            else if ((occur < 0) && (n == items.length - 1 + occur))
            {
                result += items[n] + replace; 
            }
            else
            {
                result += items[n] + search; 
            }                
        }
        result += items[items.length-1];
        result = result.substring(1, result.length-1);

        return result;
    }

Kleine Nebenerkenntnis: mit positiven Werten geht es ohne parseInt(), mit negativen aber nicht. Kann mir das jemand erklären?

Ergebnis auf getscript.de

Liebe Grüße
Tom S.

--
Es gibt nichts Gutes, außer man tut es
Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.