字串模版標籤用法
阿新 • • 發佈:2018-12-11
{ /** * 字串標籤模版 * @arg {Array} literals - 被字元變數打散的字串 * @arg {Array} substitutions - 對應每個替換的變數值 * @return {String} 新的字串 */ const repeat = function(literals, ...substitutions) { console.log(`literals: ${literals.length}`) console.log(`substitutions: ${substitutions.length}`)/** * 注意listerals[0] * 在這個例子裡面是'',即為空字串, * 意思是literals.length永遠比substitutions.length長1 * 即 substitutions.length + 1 === literals.length * 前題是literals與substitutions都存在的情況 */ return literals.reduce(( prev, next, index, arr ) => { const substitution= substitutions[index - 1]; return prev + ( substitution ? (substitution + ' ').repeat(2) : '') + next.repeat(2); }, '') } const say = `say` const world = `world`; const str = repeat`${say}hello ${world}!` console.log(str) }
這裡需要注意的是無論${ variable }是在開頭還是結尾,literals都會設定一個預設的空字元''