Задать вопрос
@vasiliy763
IT engineer

Параметры функцийв JS?

Здравствуйте !

Из строки необходимо вывести последние 4 символа, а предыдущие 2,4 или 12 заменить на *.

expect(received).toEqual(expected) // deep equality

       7 |   expect(f('1234123412341234')).toEqual('****1234');
       8 |   expect(f('1234123412344321')).toEqual('****4321');
    >  9 |   expect(f('1234123412344321', 2)).toEqual('**4321');
         |                                    ^
      10 |   expect(f('1234123412341234', 12)).toEqual('************1234');
      11 | });



Не совсем понимаю как реализовать строки в 2 и 12 *
У меня получился вот такой вот код:

// BEGIN (write your solution here)
const getHiddenCard = (text, Count) => {
    const result = text.slice(12)
    return `${'*'.repeat(4)}${result}`;
}
export default getHiddenCard;


Не совсем понимаю почему вот это вот работает:
Должна появится ошибка, когда выполнение дойдет до строки с 2 * (**)

// BEGIN (write your solution here)
const getHiddenCard = (text, Coun=4) => {
    const result = text.slice(12)
    return `${'*'.repeat(Coun)}${result}`;
}
export default getHiddenCard;
  • Вопрос задан
  • 271 просмотр
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
/**
 * @param {string} text Входная строка, номер карты
 * @param {number} count Количество видимых цифр в конце
 */
function getHiddenCard(text, count = 4) {
  if (text.length <= count) return text; // нечего скрывать звездами

  const visibleDigits = text.slice(-count); // Четыре последние цифры
  const stars = '*'.repeat(text.length - count); // Подсчет нужного кол-ва звезд

  return stars + visibleDigits;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы