Все мы знаем и используем PHP/С функцию printf для вывода строки с заполненными параметрами в нужном нам формате.
Но сегодня в эру Javascript приложений нам нужна такая функция и на фронтенде, то есть нужна функция javascript printf.
Как сделать javascript printf?
Можно сделать при помощи обычной функции, но круче сделать при помощи расширения функционала объекта String, так, чтобы можно было использовать в дальнейшем конструкцию подобную привычной «строка для обработки».replace(»,»). То есть сделаем функцию javascript sprintf для объекта String, через прототипы так, чтобы можно было вызвать:
console.log("Строка для обработки".printf(arg1, arg2,...));
Итак, приступим к написанию кода для javascript printf:
String.prototype.printf = function() { var formatted = this; for( var arg in arguments ) { formatted = formatted.replace("{" + arg + "}", arguments[arg]); } return formatted; };
Как использовать эту функцию для javascript printf?
Для того, чтобы вывести данные на javascript printf нужно вызвать функцию в таком виде:
alert("{0} — это столица, но {1} тоже!".printf("Москва", "Питер"));
В итоге мы должны получить строку:
Москва — это столица, но Питер тоже.
Конечно, вместо alert можно использовать функцию в любых местах.
Количество параметров не ограничено. Да, функция немного более проста, чем её аналог на PHP/С, но тем, не менее успешно работает.
Как работает наш варант javascript printf?
Функция работает достаточно просто, и примитивно.
В первой строке мы записываем в переменную formatted текст, который нужно форматировать при помощи javascript sprintf.
Далее в цикле по всем параметрам, которые переданы пользователем мы делаем замену подстроки с параметром на значение параметра.
В итоге, в конце всего цикла, мы возвращаем первоначальную строку, но уже с замененными параметрами.
Если хотите узнать что-то новое и интересное, то все самое интересное тут. Сайт про авто, путешествия, музыку, стиль, спорт и многое другое.