2016-11-22 67 views
0

我需要寫一個首字母縮寫詞的縮寫函數,它可以產生任何我作爲我的價值的首字母縮略詞。我不能使用循環,但我可以使用映射,縮小或過濾以及連接和拆分。我已經能夠得到一個數組的縮寫,但這不是我應該做的。這應該工作時,嘗試一個價值來得到它的縮寫 - >縮寫(我知道,對吧?)這轉向「ikr。」。JavaScript上沒有循環的首字母縮略詞功能

你不需要給我代碼;我想知道我可以使用的是不是一個循環來獲得這個代碼的工作。

+0

提示:使用任一'.split()''然後.MAP() '然後'.join()',或'.split()'然後'.reduce()'。 – nnnnnn

+0

但是'map' **是一個循環裏面。 – 2016-11-22 04:31:27

+0

你允許使用正則表達式嗎?這些詞總是由空格分隔嗎? – 2016-11-22 04:32:45

回答

1
function acronymn(str) { 
    return str.split(/\b(?=[a-z])/ig) // split on word boundaries 
     .map(token => token[0])   // get first letter of each token 
     .join('').toLowerCase()   // convert to lowercase string 
    ; 
} 

acronymn('I know, right?') === 'ikr' // true 
+0

注意:'/ \ b(?= [a-z])/ ig'可以用於像''我知道的,對嗎?' –

+0

@JaromandaX謝謝,我更新了答案以使用 – Paulpro

3

另一種替代方法:

function acronym(str) { 
    return str.toLowerCase().match(/(\b[a-z])/g).join('') 
} 

雖然,.match似乎沒有在允許的方法的列表

相關問題