[英]Fat arrow usage with map
JavaScript新手在這里。 嘗試通過粗箭頭使用Arrray.map時,出現編譯錯誤。 以下是我的示例代碼以及錯誤。
var employeesWithComplexLocation = [{ "name": "jon", "location": { "country": "usa", "city": "austin" } }, { "name": "jane", "location": { "country": "usa", "city": "houston" } }, { "name": "mary", "location": { "country": "usa", "city": "dallas" } }]; var employeesWithOnlyCity = employeesWithComplexLocation.map(function(element) { return { name: element.name, location: element.location.city }; }); console.log(employeesWithOnlyCity); console.log('Now using fat arrow:') employeesWithOnlyCity = employeesWithComplexLocation.map(e => { name: e.name, location: e.location.city }); console.log(employeesWithOnlyCity);
Array.map與匿名函數一樣可以正常工作,但是當我使用粗箭頭時卻出現以下錯誤。
employeesWithOnlyCity = employeesWithComplexLocation.map(e => {
name: e.name,
location: e.location.city
});
SyntaxError: Unexpected token :
粗箭頭可以與Array.every或Array.filter一起使用。 不知道我在這里缺少Array.map
您的第二種用法引起錯誤的原因是,當使用javascript =>
運算符{}
表示函數體,而不是對象。 關於Arrow函數的MDN文章在此處提到了這一點,並提供了指向更詳盡的解釋( 此處 )的鏈接,
ES6中的規則是{緊跟在箭頭之后始終被視為塊的起點,而不是對象的起點。
如果需要從箭頭函數返回對象,則應將該對象括在括號中,以使Javascript知道不要使用語句塊。
var test = e => ({test: e}); document.getElementById("output").innerHTML = JSON.stringify(test("My Value"));
Value: <span id="output">...</span>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.