Pig Latin 兒童黑話
What is "Ping Latin" ?什麼是兒童黑話-是一種英語語言遊戲,形式是在英語上加上一點規則使發音改變。 簡單來說就是對於字母的子母音做的一些簡單的變換。 規則如下: 如果以母音開頭則在單詞尾端加上"way","yay","hay"等等,而如果是以子音為首的詞彙的字,則將前面到第1個母音前的子音移到字尾,並加上"ay"。 wiki here
Ex:
beast → east-bay
dough → ough-day
happy → appy-hay
question → estion-quay
star → ar-stay
three → ee-thray
algorithm → algorithmway
而在這道題目的變化規則裡,是不需要加負號(-)的,其實有沒有加負號都沒有差因為只要在字串裡面多打個負號就好了
function translate(str) {
var vowel =['a', 'e', 'i', 'o', 'u'];
var position = 10;
vowel.forEach(function(emt)
{
if(str.indexOf(emt) !== -1 && position > str.indexOf(emt))
{
position = str.indexOf(emt);
}
});
return (position !== 0 ) ? str.substr(position) + str.substr(0, position).concat('ay') : str.concat('way');
}
translate("consonant");
translate("paragraphs");
translate("glove");
translate("algorithm");
Solution:
P.S. / Reference: indexOf()功用:返回給定元素能找在數組(array)中找到的第一個索引值,否則返回-1。
substr功用: substr(start, length) 方法返回字符串中從指定位置開始到指定位置(長度)的子字符串(或直到字符串的末尾 不寫length時)。
start開始提取字符的位置。如果為負值,則被看作 strLength + start,其中 strLength 為字符串的長度(例如,如果 start 為 -3,則被看作 strLength-3)。length可選。提取的字符數。
-1為倒數第1個字元(最後一個)、所以如果要從後面取長度n的字串則語法為str.substr(-n, 欲提取字串長度)