2017-03-23 52 views
-1
commonChampions.forEach(([championA, championB]) => {....}) // Valid 

commonChampions.map(([championA, championB]) => {...}) // Invalid 

SyntaxError: Unexpected token [Javascript ES6地圖不允許與ES6 forEach相同的參數?

任何人都知道爲什麼會出現這種情況?這看起來很奇怪,並且違反我的直覺。

實際代碼:

var championCompareList = commonChampions.map(([championA, championB]) => { 
    var championCompare = compareChampionStats(championA.stats, championB.stats); 
    compareValue += championCompare.compare; 
    ({ id: championA.id, result: championCompare }); 
}); 

有沒有可能是我的節點環境設置不正確處理ES6?目前我正在使用webstorm,當我檢查.map函數時,ECMAScript映射函數來自ECMAScript 5 js文件

+1

假設你的代碼在每行的末尾包含缺少的')',兩行都可以正常工作。 – Xufox

+0

VAR championCompareList = commonChampions.map(([cham​​pionA,championB])=> { 變種championCompare = compareChampionStats(championA.stats,championB.stats); 選擇compareValue + = championCompare.compare; ({ ID:championA.id , 結果:championCompare }); }); – Michael

+1

您在返回對象時忘記了'return'關鍵字。我仍然無法重現此錯誤。 – Xufox

回答

1

(我幫助@Michael離線。這篇文章遇到同樣的問題。)

我懷疑你的節點版本是過時的。在命令行鍵入node --version,並將版本號與在https://nodejs.org處找到的當前版本進行比較。