javascript 逗號(hào)操作符

return (a,b) //引發(fā)的思考
//返回值為 b

我當(dāng)時(shí)就懵逼了,這是什么鬼?為什么還有這種操作?

demo是這樣的:
let json = {
    a:{
        x: 12,
        y: 13
       },
     b:{
          x: 1,
          y: 3
       }
}
//我需要把數(shù)據(jù)轉(zhuǎn)化為
let arr = [
      {
          name:a,
          x:12,
          y:13
      },
      {
         name:b,
          x:1,
          y:3
      }
]

//然后就看到了一個(gè)騷操作
Object.keys(json).reduce((result,item)=>{
        return (result.push({
              name:item,
              ...json[item]
        }),result)
},[])

//說(shuō)實(shí)話(huà)我當(dāng)時(shí)就懵逼了

詳細(xì)剖析一下我的懵逼點(diǎn)
return (result.push({
              name:item,
              ...json[item]
        }),result)

帶括號(hào)干嘛?直接return result.push()不就ok了嗎,事實(shí)證明不ok。
原因 arr.push()是有返回值的,返回?cái)?shù)組的長(zhǎng)度。直接返回會(huì)導(dǎo)致報(bào)
錯(cuò),長(zhǎng)度.push() 必須報(bào)錯(cuò)。
再不濟(jì)我可以寫(xiě)成

result.push(item)
return result

這個(gè)沒(méi)毛病也可以看懂。
接下來(lái)開(kāi)始搜索相關(guān)問(wèn)題,由于我的無(wú)知甚至搜索了reduce的相關(guān)文章和push的文章,一無(wú)所獲。

后來(lái)突然想到會(huì)不會(huì)和“,”有關(guān)

然后就搜到了MDN的逗號(hào)操作符,尼瑪?shù)谝痪渚褪牵?/p>

逗號(hào)操作符 對(duì)它的每個(gè)操作數(shù)求值(從左到右),并返回最后一個(gè)操作數(shù)的值。
function myFunc () {
  var x = 0;

  return (x += 1, x); // the same of return ++x;
}

呵呵 到此問(wèn)題是得到了完美解釋。

結(jié)論就是多讀點(diǎn)書(shū)!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 故事是這樣的..一個(gè)哥們?cè)诿嬖嚱o我發(fā)了道題..我一下就懵圈了.. 當(dāng)時(shí)的內(nèi)心os是,為什么for的條件可以有兩個(gè),...
    尋貓的耗子閱讀 380評(píng)論 0 0
  • 最近看了些其他人分享的面試經(jīng)歷 發(fā)現(xiàn)了這么一道題 突然就陷入了沉思,這好像觸及到了我的知識(shí)盲區(qū)... 一開(kāi)始以為這...
    給我一只小熊貓閱讀 1,382評(píng)論 0 0
  • 相關(guān)鏈接mdn - Comma_Operatorstackoverflow - Why does babel re...
    holidayPenguin閱讀 3,168評(píng)論 3 4
  • 1. 逗號(hào)操作符 逗號(hào)操作符(,)可以構(gòu)成逗號(hào)表達(dá)式:逗號(hào)表達(dá)式用于將多個(gè)表達(dá)式連接為一個(gè)表達(dá)式逗號(hào)表達(dá)式的值為最...
    編程半島閱讀 321評(píng)論 0 0
  • 使用逗號(hào)操作符可以再一條語(yǔ)句中執(zhí)行多個(gè)操作,如下面的例子所示: 逗號(hào)操作符多用于申明多個(gè)變量;但除此之外,逗號(hào)操作...
    meiqiuyang閱讀 361評(píng)論 0 0

友情鏈接更多精彩內(nèi)容