簡體   English   中英

數組映射返回未定義的數組時應返回對象數組

[英]Array map returning array of undefined when should return array of objects

為什么

['a', 'b', 'c'].map((x) => { letter: x })返回一個undefined數組

['a', 'b', 'c'].map((x) => [{ letter: x }][0])正確返回一個對象數組?

你需要在()包裝對象

 var result = ['a', 'b', 'c'].map((x) => ({ letter: x })) console.log(result) 

因為

  • 您使用大括號作為塊語句

  • 你有letter作為標簽

  • x只是沒有某些動作的值。

  • undefined的返回值是函數的標准返回值,沒有任何帶語句的return語句。

    要返回默認值以外的值,函數必須具有指定要返回的值的return語句。 沒有return語句的函數將返回默認值。 對於使用new關鍵字調用的構造函數 ,默認值是其this參數的值。 對於所有其他函數,默認返回值未定義。

正確調用映射對象。

 console.log(['a', 'b', 'c'].map(x => ({ letter: x }))); 

缺少顯式return語句的函數將返回undefined。 () => {}等同於function(){} x => x相當於function(x){ return x;}

因此,沒有{}箭頭函數將返回表達式的計算值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM