Da się wsadzić znak z pozycji w tablicy w Regexie? Jakaś metoda na zliczenie wystąpień znaku z pozycji w tablicy?
let str = "onomatopoeia";
str = str.match(/o/g);
console.log(str.length); // 4
@Zian:
Jeśli pytasz o ilość wystąpień "o" w tekście, to twoje rozwiązanie jest legitne. I nie kojarzę metody która by to robiła bezpośrednio.
Przestań tylko mutować w ten sposób zmienne. Masz let str = "onomatopoeia";
i robisz z tego tablice.
Da się wsadzić znak z pozycji w tablicy w Regexie?
Trochę nie rozumiem pytania, czy da się podmienić wiele naraz? 'onomatopoeia'.replaceAll('o', 'b');
Jak chcesz generować pattern regexa np. masz tablice litter do sprawdzenia to możesz to tak robić:const letterToCheckPattern = 'o';
const pattern = new RegExp(letterToCheckPattern , 'g');
const matches = 'onomatopoeia'.match(pattern);
Jeszcze jest matchAll()
ale nie używałem szczerze mówiąc.
Kupiłem sobie dżinsy z dziurami
Jestem dobre kilka lat za modą
Ale może chociaż one
Trochę mnie odmłodzą
@kakabix:
Widzę, że kolega podąża za modom tak samo jak ja.
https://www.youtube.com/watch?v=us52N76XA28
Zawsze czuję się zaatakowany tą sceną.
@ajdajzler:
Jak tam napisałeś, że ma się pojawić 7 chyba to trochę meh. Wzorców się używa jak są dogodne sytuacje i jest z nich profit, bo ich implementacja generuje narzut kodu (jest go więcej żeby móc go wygodniej i przewidywalniej skalować), a wymyślanie takich sytuacji niepotrzebnie męczy głowę w drugą stronę.
Wzorce same w sobie to spoko temat.
Średnia cena za litr Pepsi Max
Średnia nie jest dla wszystkich więc jak Carrefour Express ma więcej danych to fizycznie ją pcha do góry, ceny na słupkach to co najkorzystniej się udało ugrać na litrach w sieciach i jest bardziej miarodajne.
@Aleks:
Ja jestem przestawiony już, ale trochę starty temat i a w sumie nie widzę sensu nawracać ludzi na jedną słuszną drogę. :D
Średnia cena za litr Pepsi Max
Średnia nie jest dla wszystkich więc jak Carrefour Express ma więcej danych to fizycznie ją pcha do góry, ceny na słupkach to co najkorzystniej się udało ugrać na litrach w sieciach i jest bardziej miarodajne.
Średnia cena za litr Pepsi Max
Średnia nie jest dla wszystkich więc jak Carrefour Express ma więcej danych to fizycznie ją pcha do góry, ceny na słupkach to co najkorzystniej się udało ugrać na litrach w sieciach i jest bardziej miarodajne.
@Aleks:
Pepsi max nie ma cukru i kalorii.
Pokaż ukrytą treśćJestem gruby, bo wpierdalam inne rzeczy. xD
Średnia cena za litr Pepsi Max
Średnia nie jest dla wszystkich więc jak Carrefour Express ma więcej danych to fizycznie ją pcha do góry, ceny na słupkach to co najkorzystniej się udało ugrać na litrach w sieciach i jest bardziej miarodajne.
@Aleks:
To jest średnia cena dla mnie, jak kupiłem 99 butelek po 10zł w drogim sklepie i 1 za 3zł to jest wysoka średnia, ale dla mnie, nie mówi to nic o średniej cenie na butelki w sklepach.
Dlaczego wartość str
jest zwracana przy n = -1
?
function padIt(str, n) {
while (n--) str = (n & 1) ? (str + "*") : ("*" + str);
return str;
}
console.log(padIt("a", 5));
EDIT: Wcina wcięcia.
@ajdajzler:
Ja mam u siebie w pracy klika wywołań z while
ale też niepopularne i częściej się go robi na około przez rekurencje dla danych warunków.
Ale jak ktoś chce być super cool i do przodu to robi generator:function* idMaker() {
let index = 0;
while(true) { yield index++; }
}
const gen = idMaker();
console.log(gen.next().value); // 0
console.log(gen.next().value); // 1
console.log(gen.next().value); // 2
Dlaczego wartość str
jest zwracana przy n = -1
?
function padIt(str, n) {
while (n--) str = (n & 1) ? (str + "*") : ("*" + str);
return str;
}
console.log(padIt("a", 5));
EDIT: Wcina wcięcia.
Tu nie chodzi o operacje na bitach.
To dobrze, że o tym nie myślałem, bo tam jest & wcześniej czyli operacja bitowa. :)
Jak to ma dodawać gwiazdki przed i za to ja bym to zrobił tak bez pętli:const avgN = Math.floor(n / 2);
const prefixLength = n % 2 === 0 ? avgN : avgN+1; // dla 5 więcej na starcie jest
str = str.padStart((prefixLength + str.length), '*');
str = str.padEnd((avgN + str.length), '*');
return str;
Nie weryfikowałem tego, ale to powinno być optymalniejsze niż każda pętla, bo while, for etc. i to pewnie będzie optymalizowane przez kompilator, ale padStart i padEnd już jest pewnie zoptymalizowane na poziomie silnika js.
Dlaczego wartość str
jest zwracana przy n = -1
?
function padIt(str, n) {
while (n--) str = (n & 1) ? (str + "*") : ("*" + str);
return str;
}
console.log(padIt("a", 5));
EDIT: Wcina wcięcia.
Jakby co JS ma padStart, padEnd.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart
Z JS pracuję codziennie ale Ci tego nie zdebuguje: pętla while z operacją na bitach (której się nieczęsto używa w js, bo jest to jednak język wysokopoziomowy) robiąca działania z iteratorze. I dochodź co autor miał na myśli i co poszło źle. :)
Popracuj nad czytelnością kodu, bo bardziej niż o to żeby komputer cie rozumiał chodzi o to żeby ludzie którzy ten kod zobaczą albo Ty za rok wiedzieli o co chodzi i czuli się z nim komfortowo jak musisz usiąść z kubkiem herbaty i kompilować taką 1 linijkę w głowie to coś poszło nie tak. :)