中文字幕一区二区人妻电影,亚洲av无码一区二区乱子伦as ,亚洲精品无码永久在线观看,亚洲成aⅴ人片久青草影院按摩,亚洲黑人巨大videos

使用數(shù)組化簡

發(fā)布于:2021-01-16 14:12:38

0

96

0

數(shù)組 JavaScript

每個專門研究任何編程語言的開發(fā)人員都會告訴您,有一個強大的工具提供了該語言,他們很少使用并且希望他們了解更多。對我來說,這是Array.prototype.reduce。我很喜歡其他Array方法,例如map,filter和find,但是reduce我知道這種方法功能強大,但從未真正使用過。

直到我重構(gòu)了一些Firefox DevTools Debugger代碼后,我才發(fā)現(xiàn)了一個很好的用例reduce-我計劃在將來使用它。

像forEach和這樣的方法map都是為了避免產(chǎn)生副作用而創(chuàng)建的,reduce也不例外。但是,在這種情況下,reduce可以返回Object以外的值A(chǔ)rray。以這種情況為例:

// Samples sources const sources = [   {     id: "server1.conn13.child1/39",     url: "https://davidwalsh.name/"   },   {     id: "server1.conn13.child1/37",     url: "https://davidwalsh.name/util.js"   } ]; // Return an object of sources with the keys being "id" const sourcesMap = sources.reduce((map, source) => {   map[source.id] = source   return map; }, {});

在上面的例子中,我們采取的陣列Source對象,并與每個返回單個對象文字Source的id作為鍵:

{   "server1.conn13.child1/39": {     "id": "server1.conn13.child1/39",     "url": "https://davidwalsh.name/"   },   "server1.conn13.child1/37": {     "id": "server1.conn13.child1/37",     "url": "https://davidwalsh.name/util.js"   } }

請注意{},,這是的最后一個參數(shù)reduce,是要返回的開始/默認(rèn)對象。如果數(shù)組中沒有項目,{}則將返回。還應(yīng)該意識到,數(shù)組方法返回的是對象常量而不是修改后的數(shù)組!

瘋狂的是我沒有使用reduce更多的東西,但這只是我們行業(yè)中的生活-我們都有一些API,我們只是很少使用。您經(jīng)常看到但不使用JavaScript的哪些功能?