JavaScript

Необходимо пояснить что выполняют определенные элементы в коде

Код меняет местами слова, которые задает пользователь.
Нужно пояснить для чего нужны и что делают (прям пофункционлаьно) 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));

Заранее благодарю
А. Салават
А. Салават
399
split возвращает массив, значит k.length - количество элементов в массиве.
Т. е. если введено менее 2 слов, то просто возвращаем то, что введено (переставлять нечего).

Если же слов 2 или больше, то берем первые 2 слова в обратном порядке ([k[1], k[0]]), а затем присоединяем (concat) все остальные слова (k.splice(2, k.length)). Соединяем все это дело в строку через пробел (join(" ")).
Алексадр Красильников
Алексадр Красильников
4 429
Лучший ответ
Эта типа упражнения чтоли
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('Фамилия Имя Отчество');  // 'Имя Фамилия'

Каждый из четырех использованных тут методов, легко гуглится - не ленись нажимать на кнопочки.
Баглан Акшаев
Баглан Акшаев
99 299
4 - если длинна переменной к меньше двух, вовзращается параметр s
5 - возврат второго и первого элемента k, конкатенация
зы
прежде чем такие задачи решать, неплохо бы теорию подтянуть
BZ
B@uk@ Zh@n@bergenov
3 942
А. Салават Похоже я плохо сформулировал вопрос. Я знаю что делают определенные методы, в синтаксисе тоже бейзик левел есть. Просто не понимаю для чего нужно вот это условие, если длина меньше 2. Почему 2х?

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