我需要寫一個首字母縮寫詞的縮寫函數,它可以產生任何我作爲我的價值的首字母縮略詞。我不能使用循環,但我可以使用映射,縮小或過濾以及連接和拆分。我已經能夠得到一個數組的縮寫,但這不是我應該做的。這應該工作時,嘗試一個價值來得到它的縮寫 - >縮寫(我知道,對吧?)這轉向「ikr。」。JavaScript上沒有循環的首字母縮略詞功能
你不需要給我代碼;我想知道我可以使用的是不是一個循環來獲得這個代碼的工作。
我需要寫一個首字母縮寫詞的縮寫函數,它可以產生任何我作爲我的價值的首字母縮略詞。我不能使用循環,但我可以使用映射,縮小或過濾以及連接和拆分。我已經能夠得到一個數組的縮寫,但這不是我應該做的。這應該工作時,嘗試一個價值來得到它的縮寫 - >縮寫(我知道,對吧?)這轉向「ikr。」。JavaScript上沒有循環的首字母縮略詞功能
你不需要給我代碼;我想知道我可以使用的是不是一個循環來獲得這個代碼的工作。
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
注意:'/ \ b(?= [a-z])/ ig'可以用於像''我知道的,對嗎?' –
@JaromandaX謝謝,我更新了答案以使用 – Paulpro
另一種替代方法:
function acronym(str) {
return str.toLowerCase().match(/(\b[a-z])/g).join('')
}
雖然,.match
似乎沒有在允許的方法的列表
提示:使用任一'.split()''然後.MAP() '然後'.join()',或'.split()'然後'.reduce()'。 – nnnnnn
但是'map' **是一個循環裏面。 – 2016-11-22 04:31:27
你允許使用正則表達式嗎?這些詞總是由空格分隔嗎? – 2016-11-22 04:32:45