簡體   English   中英

使用Array.prototype.fill()在js上調整范圍

[英]ranges on js using Array.prototype.fill()

我真的對JS和ES6中的一些非常有用的功能不熟悉。 我試圖學習更多有關如何使用fill創建范圍的信息,並且根據一些示例,我已經獲得了以下代碼,以我想要的方式工作,但是我不了解它的實際工作原理。 當我在控制台中打印prevYear和nextYear的值時,我可以看到nextYear每次都增加1,從而使年份增加。 太棒了,但是,如果我沒有為它設置任何值,我想了解nextYear的工作方式。 我嘗試將1加到prevYear上,但操作不正確。 這里我的代碼更加清晰:

startYear = 1900 EndYear = 1910

//此代碼返回= [1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910]

    var yearsRange = Array(endYear - startYear + 1).fill(startYear).map((prevYear,nextYear) => prevYear + nextYear);  

將這段代碼更改為:

var yearsRange = Array(endYear - startYear + 1).fill(startYear).map((prevYear) => prevYear += 1);  

//這將返回[1901、1901、1901、1901、1901、1901、1901、1901、1901、1901、1901]

為什么?

參數被可怕地命名。 prevYearnextYear完全沒有意義(當然,將它們加在一起也不會)。

var yearsRange = Array(endYear - startYear + 1)
  .fill(startYear)
  .map((startYear, index) => startYear + index); 

回調是一個函數。 運行函數時,所有局部變量都相互獨立地工作。 如果有幫助,我們可以使該回調成為命名函數。

 let arr = Array(11).fill(1910) let incrementByOne = (num) => { return num += 1 } console.log(arr.map((num) => incrementByOne(num))) 

每次您運行incrimentByOne ,它都會從您的數組中接收值,該值始終為1990

暫無
暫無

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

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