2015-08-28 135 views
3

所以我很新的ES6,並希望知道是否有一個簡單的方法來返回字符串,而不是嘗試找出順序,我喜歡這種方法,但我發現與大字符串它相當有點酷刑。請任何人都能朝正確的方向射擊我嗎?也有可能使用此功能的箭頭功能?ES6字符串模板

function text(strings, ...values){ 
     if(values[3]>200){ 
      values[2] = "realy fast up too" 
     }else{ 
      values[2] = "super slow up too" 
     } 
     return `${strings[0]}${values[0]} ${values[1]}${strings[1]}${strings[2]}${values[2]} ${values[3]}${strings[3]}${strings[4]}${strings[5]}${values[4]}`; 
     } 

     let sentance = text`Your ${this.color} ${this.cartype}can drive ${""} ${this.speed}Km/H while going ${this.carsound(carS)}`; 

而且我嘗試使用像下面這樣一個箭頭的功能,但我得到的第16行的編譯錯誤(意外標記),這是你看到

text(strings, ...values)=>{ 
     if(values[3]>200){ 
      values[2] = "realy fast up too" 
     }else{ 
      values[2] = "super slow up too" 
     } 
     return `${strings[0]}${values[0]} ${values[1]}${strings[1]}${strings[2]}${values[2]} ${values[3]}${strings[3]}${strings[4]}${strings[5]}${values[4]}`; 
     } 
+1

沒有理由爲此使用箭頭函數。我建議使用循環。 –

+0

對於箭頭函數,請嘗試'讓文本=(字符串,...值)=> ...# – MaxArt

+0

非常感謝的傢伙。非常感謝幫助。 –

回答

1

我會做這樣的事情的第一行如果使用jQuery

let text = (strings, ...values) { 
    // code 
    return $.map(strings, function(v, i){ return v + values[i]; }).join(' '); 
} 

箭頭函數是一個匿名函數,你不能在你使用函數的時候使用它。 你必須把它賦值給var,就像這樣;

let text = (strings, ...values)=> { ... } 
+0

非常感謝拉斐爾,那真棒。我將閱讀jQuery .map函數以瞭解它如何深入工作。但再次感謝。 –