第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何在函數(shù)返回中向?qū)ο筇砑佣鄠€(gè)數(shù)組?

如何在函數(shù)返回中向?qū)ο筇砑佣鄠€(gè)數(shù)組?

絕地?zé)o雙 2022-06-16 15:11:45
for我有一個(gè)函數(shù),它接受一個(gè)對(duì)象作為道具,需要使用循環(huán)向它添加數(shù)組。我的問(wèn)題是,它僅在調(diào)用時(shí)添加單個(gè)數(shù)組時(shí)才有效。如果要添加多個(gè)數(shù)組,我會(huì)收到錯(cuò)誤linkLineItems.push is not a function,但我認(rèn)為.push可以用于將數(shù)組添加到對(duì)象。這是功能:function PrepareSuccessorActivityLinkData(data, existingLinks, linkSetter) {  for (let [key, value] of Object.entries(data)) {    let linkLineItems;    let linkLineItem;    if (data.activitiesafter[0] != "DEFAULT") {      for (var i = 0; i < data.activitiesafter.length; i++) {        linkLineItem = {          source: data.itemname,          target: data.activitiesafter[i],          type: "activity-activity-after"        };        if (!linkLineItems) {          linkLineItems = linkLineItem;        } else {          linkLineItems.push(linkLineItem);        }      }    } else {      continue;    }    return linkSetter(linkData => [...existingLinks, linkLineItems]);  }}有關(guān)如何將多個(gè)數(shù)組添加到對(duì)象的任何幫助?existingLinks編輯#1:我嘗試向其中添加項(xiàng)目的 or 對(duì)象的示例數(shù)據(jù)var linksData = [ {"source": "Do Something", "target": "My Document", "type": "Activity Output"}, {"source": "My Document", "target": "Operator", "type": "Object Responsible"}, {"source": "Operator", "target": "Do Something", "type": "Role Activity"}];編輯#2:傳遞給函數(shù)的樣本數(shù)據(jù)為data[{ itemname: "Hello World",  itemtype: "activity",  activitiesafter: ["Do Stuff", "Do Other Stuff"]}]
查看完整描述

2 回答

?
阿波羅的戰(zhàn)車

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超6個(gè)贊

一些自稱的最佳實(shí)踐:

  1. 當(dāng)您不需要索引時(shí),盡可能避免使用 for 循環(huán)。(參見(jiàn)forEach等)。這樣可以減少污染眼睛的變量。

  2. 盡早“繼續(xù)”或“返回”以避免嵌套內(nèi)容(例如return links先出現(xiàn))

  3. 盡量減少變量的范圍。這也是通過(guò)使用 forEach 來(lái)實(shí)現(xiàn)的

function nameTooLong(data, existingLinks, linkSetter) {

  const moreLinks = data.reduce((links, item) => {

    if (item.activitiesafter[0] === "DEFAULT") {

      return links

    }

    item.activitiesafter.forEach(activity => {

      links.push({

        source: item.itemname,

        target: activity,

        type: "activity-activity-after"

      })

    })

    return links

  }, [])

  return linkSetter(_ => existingLinks.concat(moreLinks))

}


nameTooLong([{

 itemname: "Hello World", 

 itemtype: "activity", 

 activitiesafter: ["Do Stuff", "Do Other Stuff"]

},{

 itemname: "shold be ignored", 

 itemtype: "activity", 

 activitiesafter: ["DEFAULT", "nothing there"]

}], ['toto'], (fn) => console.log('newlinks: ', fn()))


如果您閱讀 3.,我們可以做得更好,甚至可以避免使用flatMap操作變量鏈接


function nameTooLong(data, existingLinks, linkSetter) {

  const moreLinks = data.flatMap(item => {

    if (item.activitiesafter[0] === "DEFAULT") {

      return []

    }

    return item.activitiesafter.map(activity => ({

      source: item.itemname,

      target: activity,

      type: "activity-activity-after"

    }))

  })

  return linkSetter(_ => existingLinks.concat(moreLinks))

}


nameTooLong([{

 itemname: "Hello World", 

 itemtype: "activity", 

 activitiesafter: ["Do Stuff", "Do Other Stuff"]

},{

 itemname: "shold be ignored", 

 itemtype: "activity", 

 activitiesafter: ["DEFAULT", "nothing there"]

}], ['toto'], (fn) => console.log('newlinks: ', fn()))


查看完整回答
反對(duì) 回復(fù) 2022-06-16
?
交互式愛(ài)情

TA貢獻(xiàn)1712條經(jīng)驗(yàn) 獲得超3個(gè)贊

push 函數(shù)僅適用于數(shù)組,不適用于對(duì)象。

而且由于我認(rèn)為沒(méi)有任何理由linkLineItems需要成為一個(gè)對(duì)象,我建議您只需通過(guò)初始化它來(lái)使其成為一個(gè)數(shù)組let linkLineItems = [];。


查看完整回答
反對(duì) 回復(fù) 2022-06-16
  • 2 回答
  • 0 關(guān)注
  • 170 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)