Код меняет местами слова, которые задает пользователь.
Нужно пояснить для чего нужны и что делают (прям пофункционлаьно) 3 и 4 строки
1 var a = prompt('Введите имя и фамилию, разделив их пробелом','');
2 function rrr(s) {
3 var k = s.split(" ");
4 if( k.length < 2) return s;
5 return [ k[1], k[0]].concat( k.splice( 2, k.length)).join(" ");
6 }
7 alert(rrr(a));
Заранее благодарю
JavaScript
Необходимо пояснить что выполняют определенные элементы в коде
split возвращает массив, значит k.length - количество элементов в массиве.
Т. е. если введено менее 2 слов, то просто возвращаем то, что введено (переставлять нечего).
Если же слов 2 или больше, то берем первые 2 слова в обратном порядке ([k[1], k[0]]), а затем присоединяем (concat) все остальные слова (k.splice(2, k.length)). Соединяем все это дело в строку через пробел (join(" ")).
Т. е. если введено менее 2 слов, то просто возвращаем то, что введено (переставлять нечего).
Если же слов 2 или больше, то берем первые 2 слова в обратном порядке ([k[1], k[0]]), а затем присоединяем (concat) все остальные слова (k.splice(2, k.length)). Соединяем все это дело в строку через пробел (join(" ")).
Эта типа упражнения чтоли
4 условие если слово меньше двух то вернуть старое значение
5 поменять местами первых два слова остальные оставить без изменений
Решается всё действительно ГОРАЗДО ПРОЩЕ !!!
rrr=a=>a.replace(/^(\S*)\s(\S*)(.*)/,'$2 $1$3');
alert(rrr('Фамилия Имя Отчество')); // "Имя Фамилия Отчество"
alert(rrr('Фамилия Имя')); // "Имя Фамилия"
alert(rrr('Имя')); // "Имя"
Одна функция работы над строками решает все проблемы Очень легко гуглится !!!
А кто левое ухо продолжает чесать правой ногой пусть продолжает не будем его периучивать возможно он делает от большого ума у него походу ум за разум заходит в своих познаниях :D :D :D
PS неумение с толком применять встроенные методы в нужное время в нужном месте говорит об отсутствие интеллекта!
⚤
4 условие если слово меньше двух то вернуть старое значение
5 поменять местами первых два слова остальные оставить без изменений
Решается всё действительно ГОРАЗДО ПРОЩЕ !!!
rrr=a=>a.replace(/^(\S*)\s(\S*)(.*)/,'$2 $1$3');
alert(rrr('Фамилия Имя Отчество')); // "Имя Фамилия Отчество"
alert(rrr('Фамилия Имя')); // "Имя Фамилия"
alert(rrr('Имя')); // "Имя"
Одна функция работы над строками решает все проблемы Очень легко гуглится !!!
А кто левое ухо продолжает чесать правой ногой пусть продолжает не будем его периучивать возможно он делает от большого ума у него походу ум за разум заходит в своих познаниях :D :D :D
PS неумение с толком применять встроенные методы в нужное время в нужном месте говорит об отсутствие интеллекта!
⚤
А. Салават
код не мой прост )) хотя я и сам бы наверное так написал :D начинающий прост
Это делается проще:
const rrr = s => s.split(' ').slice(0, 2).reverse().join(' ');
rrr('Имя Фамилия'); // 'Фамилия Имя'
rrr('Имя'); // 'Имя'
rrr('Фамилия Имя Отчество'); // 'Имя Фамилия'
Каждый из четырех использованных тут методов, легко гуглится - не ленись нажимать на кнопочки.
const rrr = s => s.split(' ').slice(0, 2).reverse().join(' ');
rrr('Имя Фамилия'); // 'Фамилия Имя'
rrr('Имя'); // 'Имя'
rrr('Фамилия Имя Отчество'); // 'Имя Фамилия'
Каждый из четырех использованных тут методов, легко гуглится - не ленись нажимать на кнопочки.
4 - если длинна переменной к меньше двух, вовзращается параметр s
5 - возврат второго и первого элемента k, конкатенация
зы
прежде чем такие задачи решать, неплохо бы теорию подтянуть
5 - возврат второго и первого элемента k, конкатенация
зы
прежде чем такие задачи решать, неплохо бы теорию подтянуть
А. Салават
Похоже я плохо сформулировал вопрос. Я знаю что делают определенные методы, в синтаксисе тоже бейзик левел есть. Просто не понимаю для чего нужно вот это условие, если длина меньше 2. Почему 2х?
Похожие вопросы
- Вопрос только к тем, кто знает js: Кому не лень, объясните мне нубу значение каждого элемента небольшого кода (10 строк).
- Какой программный код на языке JavaScript необходимо указать чтобы появилось окно в котором можно писать?
- Можно ли отловить событие когда один элемент попадает на другой в js?
- Поиск элементов в двумерном массиве
- напишите программу которая проверяет элементы массива на схожесть
- Программа по вычислению индекса элемента массива в джава
- Помогите разобраться в логике кода (замыкания)
- Вопрос по стилю кода. Следует ли проверять наличие свойства в объекте если я точно знаю что оно должно там быть?
- Гляньте код пожалуйста? Он работает, но мне кажется так не пишут. Да и по default что то не хочет работать код.
- Посмотрите пожалуйста задание. Всё работает. Тем не менее, интересно услышать замечания по коду.