#
Фишки
#
Избавление от повторяющихся элементов в массиве
Здесь используется:
- Link; Метод spread (TODO)
- Link; Встроенный объект Set (TODO)
// Вариант 1
let arr = [1, 2, 3, 4, 1, 2, 3, 1, 2, 1];
arr = [...new Set(arr)];
// Вариант 2
let arr = [1, 2, 3, 4, 1, 2, 3, 1, 2, 1];
arr = Array.from(new Set(arr));
// Выведет [ 1, 2, 3, 4 ]
#
Нахождение количества цифр в числе за О(1)
Здесь используется:
- Link; Встроенный объект Math (TODO)
#
Пояснение:
Этот код использует функции из стандартного объекта Math, чтобы определить количество цифр в числе number.
Math.log10(number): Эта функция возвращает десятичный логарифм числаnumber. Например, еслиnumberравно100, тоMath.log10(100)будет равно2, так как 10 в степени 2 равно 100.Math.round(Math.log10(number) + 1): Здесь мы берем десятичный логарифм числаnumber, увеличиваем его на1(чтобы учесть саму цифру в числе), и округляем результат до ближайшего целого числа с помощьюMath.round(). Это дает нам количество цифр в числеnumber.
let number = 192837465;
let NumberOfDigits = Math.round(Math.log10(number) + 1);
// Выведет 9
#
Подсчет вхождения каждого элемента в строке
Здесь используется:
- Link; Метод spread (TODO)
- Link; Метод reduce (TODO)
#
Пояснение:
Этот код использует метод массивов reduce() для анализа строки str и подсчета частоты встречаемости каждого символа в этой строке.
[...str]: Это преобразует строкуstrв массив, разбивая ее на отдельные символы. Например, еслиstrравно"hello", то[...str]будет равно["h", "e", "l", "l", "o"]..reduce((result, symbol) => ((result[symbol] = (result[symbol] || 0) + 1), result), {}): Этот методreduce()проходит по каждому элементу массива (в данном случае, по каждому символу строки).
Функция обратного вызова, переданная в reduce(), выполняется для каждого элемента массива. В данном случае, она выполняется для каждого символа строки.
result[symbol] = (result[symbol] || 0) + 1: Здесь проверяется, есть ли уже запись для текущего символа symbol в объектеresult. Если она уже существует, увеличивается значение счетчика для этого символа на1. Если она не существует (т.е.result[symbol]равенundefined), тогда значение счетчика устанавливается в1.
В итоге, в объекте result будут содержаться частоты встречаемости каждого символа в строке.
const str = "abcd\nabc\nad\na";
let NumberOfSymbols = [...str].reduce(
(result, symbol) => ((result[symbol] = (result[symbol] || 0) + 1), result),
{}
);
// Выведет { a: 4, b: 2, c: 2, d: 2, '\n': 3 }