2017-06-16 52 views
1

我有以下代碼,基本上獲取一些JSON數據,尋找與「servergenre」的鍵,並將結果保存在一個數組中。 這是this question的後續行動。如何擺脫object.key編輯器的錯誤

let result = []; 
     Object.keys(data).forEach(key => { 
      if(/servergenre/.test(key)){ 
       result.push(data[key]) 
      } 
     }); 

即使代碼工作正常,在一些編輯器它提出了語法錯誤:

  • 」:不可解變量或輸入鍵
  • =>」:預期表達式
  • 「if(/ server ...」:預期的形式參數名稱
  • )){」:,預計
  • });「:聲明預計

這裏是一個圖像,顯示你在哪裏的錯誤是:

screenshot of code with error underlines

正如我所說的代碼工作正常,我只是需要它來修復或其他辦法擺脫錯誤的。

此外,許多壓縮機和minifiers不支持這段代碼,所以我不能再壓縮了。

ŧ提前。

+1

編輯必須允許ES6 – mplungjan

+0

我不瞭解ES6,但由於這些錯誤,我無法壓縮或縮小代碼 – DannyBoy

+2

您必須使用支持ES6語法的轉譯器/縮小器,例如Babel。 – mhodges

回答

2

ES2015,原名ES6,是JavaScript的,它引入了功能,如=>語法您正在使用的功能的最新版本。

並非所有瀏覽器都支持ES2015的所有功能,因此很多使用它的人首先通過編譯器(「轉譯器」)將其轉換爲ES5,而ES5則受所有瀏覽器支持。 Babel就是這樣一個轉譯器。但是,如果你只是針對較新的瀏覽器,這將解釋爲什麼=>語法適合你。

您只需更改編輯器設置即可瞭解該語法。具體怎麼做取決於你使用的文本編輯器。這可能是因爲編輯器的內置JavaScript模式不知道如何閱讀ES2015語法,您需要升級編輯器或安裝提供更新錯誤檢查器的第三方插件。或者可能是因爲您的編輯器支持ES5和ES2015,並且它認爲您只是在ES5中編寫您的項目。在這種情況下,您只需要進入設置並告訴您的編輯您對此項目使用ES2015(或ES2016,這是當前最新版本)的意思。

+1

是的,這是遲到了,我沒有心情解釋所有這一切:) –

1

胖箭頭是ES6語法。如果引起麻煩,只寫好老ES5:

let result = []; 
Object.keys(data).forEach(function(key) { 
     if(/servergenre/.test(key)){ 
      result.push(data[key]) 
     } 
});