Pracuję nad problemem, proszę mnie o:

Przesuń pierwszą literę każdego słowa do końca, a następnie dodaj "ay" do końca słowa.

pigIt('Pig latin is cool'); //igPay atinlay siay oolcay

Oto kod, na razie mam na razie i zwraca pierwsze słowo, chociaż użył do pętli. Może to być głupi błąd, ale jestem tylko przykształconym tutaj i naprawdę docenił swoją pomoc sprawdzając kod. )

function pigIt(str) {

str = str.split(" ")
 for(var i = 0;i<str.length;i++)
 return str[i].slice(1)+str[i][0]+"ay"
}

console.log(pigIt('Pig latin is cool'))

A także myślę, że moje rozwiązanie może być uproszczone przy użyciu zagnieżdżonej funkcji mapy, ale moja próba nie była udana; Czy któryś z was może wymyślić lepsze rozwiązanie przedstawionego problemu?

Dzięki chłopaki.

AKTUALIZACJA:

Oto kod pracy mapy, którego szukałem, znacznie lepiej niż moje oryginalne rozwiązanie:

 function pigIt(str){
 return str.split(' ').map(function(el){
  return el.slice(1) + el.slice(0,1) + 'ay';
  }).join(' ');
 }

Jeśli ktoś inny natknął się na to pytanie i chcesz użyć uproszczonego kodu problemu.

1
Bray 13 sierpień 2014, 02:49

2 odpowiedzi

Najlepsza odpowiedź

Proszę bardzo:

var str = 'pig latin is cool',
    strArr = [];

str.split(' ').forEach(function (piece, index, arr) {
    piece = piece.slice(1) + piece[0] + 'ay';
    strArr.push(piece);
});

alert(strArr.join(' '));

DEMO: http://jsfiddle.net/6fdx2mcs/

2
AlienWebguy 12 sierpień 2014, 22:55

Twoi używasz return w pętli for, więc wykonuje pierwszą iterację i ... zwroty.

Musisz nacisnąć zawartość na tablicę, a następnie dołączyć do tablicy do łańcucha.

6
jcaron 12 sierpień 2014, 22:52