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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

創(chuàng)建具有已知大小/性能的 Javascript 數(shù)組

創(chuàng)建具有已知大小/性能的 Javascript 數(shù)組

GCT1015 2022-07-08 09:52:50
我已經(jīng)重構(gòu)了這段代碼,但仍然覺得這可以寫得更好(沒有外部庫)。有什么建議么?  // Old  const filters = [];  for (let i = 1; i < 54; i += 1) {    const currentDateDisplay = getStartDate(i, new Date().getFullYear());    filters.push({ text: currentDateDisplay, value: currentDateDisplay });  }  // New  const filters2 = [...Array(53).keys()].map((item) => ({    text: getStartDate(item, new Date().getFullYear()),    value: getStartDate(item, new Date().getFullYear()),  }));編輯:看起來有時最好使用舊的 for 循環(huán),尤其是在性能方面。感謝您的建議。
查看完整描述

4 回答

?
炎炎設計

TA貢獻1808條經(jīng)驗 獲得超4個贊

我不得不同意您編寫的第一個實現(xiàn)看起來更直觀,但是,第二個方法可以用不同的方式編寫。


通過第一次調(diào)用new Array(53),您創(chuàng)建了一個包含 53 個元素的數(shù)組。通過然后調(diào)用.map((_, index) => {}),您可以訪問索引變量(使用_,item因為它是undefined無論如何)。您不必通過傳播來克隆新數(shù)組,因此只需使用此代碼即可:


const filters = new Array(53).map((_, index) => ({

  text: getStartDate(index, new Date().getFullYear()),

  value: getStartDate(index, new Date().getFullYear())

}));


查看完整回答
反對 回復 2022-07-08
?
喵喔喔

TA貢獻1735條經(jīng)驗 獲得超5個贊

你喜歡哪種風格最終是一個品味問題。如果你更喜歡第二種——更像函數(shù)式——的風格,你可以將其簡化如下:


const year = new Date().getFullYear();

const filters2 = Array.from(new Array(53), (_, i) => {

  const startDate = getStartDate(i, year);

  return {text: startDate, value: startDate};

});

它替換[...Array(53).keys()].map()為更合適Array.from的值,并且不會多次評估相同的值。這種簡單情況下的性能差異可以忽略不計,您應該使用對您和您的團隊更易讀的代碼。


查看完整回答
反對 回復 2022-07-08
?
暮色呼如

TA貢獻1853條經(jīng)驗 獲得超9個贊

你想用一個初始值來初始化一個數(shù)組嗎?這就是Array.fill()的用例


const filters2 = new Array(53).fill({

  text: getStartDate(0, new Date().getFullYear()),

  value: getStartDate(0, new Date().getFullYear())

});


查看完整回答
反對 回復 2022-07-08
?
富國滬深

TA貢獻1790條經(jīng)驗 獲得超9個贊

我更喜歡您的old變體,因為它對我來說更具可讀性。在我看來,代碼應該更具可讀性而不是更短。


此外,根據(jù)測試,old 變體更快:


const filters = [];

for (let i = 1; i < 54; i += 1) {

    const currentDateDisplay = getStartDate(i, new Date().getFullYear());

    filters.push({ text: currentDateDisplay, value: currentDateDisplay });

}


查看完整回答
反對 回復 2022-07-08
  • 4 回答
  • 0 關(guān)注
  • 148 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

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