Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Найти количество вхождений подстроки в строку (https://javascript.ru/forum/misc/84106-najjti-kolichestvo-vkhozhdenijj-podstroki-v-stroku.html)

NovichokJS 03.06.2022 15:13

Найти количество вхождений подстроки в строку
 
На выходе хочу получить:

console.log(countOccurrences('abefhiefj', 'ef'));
// 2

Мой код:

const countOccurrences = (text, str) => {
    if (str === '') { return null; }

    let counter = 0;

    for (let char of text) {
        if (char === str) {
            counter++;
        }
    }

    return counter;
};


Но он работает если вторым параметром будет только один символ, например:

console.log(countOccurrences('abefhiefj', 'e'));


Но что добавить в коде чтобы искало кол-во вхождений в переданном параметре с более чем в один символ?

рони 03.06.2022 15:22

NovichokJS,
разрежьте строку по образцу и верните длину массива.

NovichokJS 03.06.2022 15:25

Цитата:

Сообщение от рони (Сообщение 545869)
NovichokJS,
разрежьте строку по образцу и верните длину массива.

а что вы имеете ввиду "по образцу"?

NovichokJS 03.06.2022 15:25

во втором передаваемом параметре функции может быть и больше чем 2 символа

рони 03.06.2022 15:27

NovichokJS,
const countOccurrences = (text, str) => {
    let {length} = text.split(str);
    return --length;
};
console.log(countOccurrences('abefhiefj', 'ef'));

NovichokJS 03.06.2022 15:35

Цитата:

Сообщение от рони (Сообщение 545872)
NovichokJS,
const countOccurrences = (text, str) => {
    let {length} = text.split(str);
    return --length;
};
console.log(countOccurrences('abefhiefj', 'ef'));

интересное решение. А объясните пожста, что происходит в выражении let {length}

рони 03.06.2022 15:37

Цитата:

Сообщение от NovichokJS
, что происходит в выражении let {length}

тоже самое что тут
let length = text.split(str).length;

рони 03.06.2022 15:40

NovichokJS,
Деструктурирующее присваивание

NovichokJS 03.06.2022 15:42

Цитата:

Сообщение от рони (Сообщение 545872)
NovichokJS,
const countOccurrences = (text, str) => {
    let {length} = text.split(str);
    return --length;
};
console.log(countOccurrences('abefhiefj', 'ef'));

Цитата:

Сообщение от рони (Сообщение 545875)

круто, понял. Получается что задачу решили как бы от обратного

Gvozd 04.06.2022 04:05

И тут пришел поручик, и все опошлил
countOccurrences('ababa', 'aba'));// ???


Часовой пояс GMT +3, время: 22:52.