亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Javascript中如何實現reduce函數查重

發布時間:2021-07-22 14:16:36 來源:億速云 閱讀:204 作者:小新 欄目:web開發

這篇文章給大家分享的是有關Javascript中如何實現reduce函數查重的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

原代碼:

var arr="qweqrq"
var info= arr.split('').reduce((a,b)=>
 (a[b]++ || (a[b]=1),a)
,{})
console.log(info)

代碼思路是這樣的,先將字符串arr通過split方法切割成數組,然后使用reduce,這個方法干了什么呢,分為這幾步:

1.首先reduce會接收一個callback來對數組里的每一個元素執行,如果有第二個參數如上例:{}。,那么callback將會使用這個{}作為參數來和數組中的第一個元素一同傳入callback;

2.傳入參數之后,會進行一個與門短路操作,也可以叫默認值操作,當a[b]++成真,則返回a[b]。而這里的a為{},b為"q",很明顯a中并沒有b,執行a[b]=1,那么就會給a[b]賦值為1,后面是一個逗號表達式,所以會返回有了a[b]:1這樣屬性的a對象;

與門短路操作:如果第一個操作數的值為true,進行短路操作,直接產生第一個操作數的值。如果為false,則產生第二個操作數的值。

逗號表達式:逗號表達式的一般形式是:表達式1,表達式2,表達式3……表達式n。逗號表達式的求解過程是:先計算表達式1的值,再計算表達式2的值,……一直計算到表達式n的值。最后整個逗號表達式的值是表達式n的值。

3.之后要說下reduce函數,它可以將之前一次執行后返回的結果作為參數繼續和之后的元素一同傳入callback執行,相當于fn(fn(fn(fn(a,b),c),d),e),fn即為callback;

4.在本例中,因為有第二個參數{}傳入,所以callback執行了6次。相當于對數組中每一個元素都進行了錄入和查重操作,比如當callback運行到第四次,這時的a是{q:1,w:1,e:1},執行callback,a[b]即a['q']存在,執行a['q']++,a['q']值為2,以此類推,最后得到的就是一個以數組每個元素為屬性名,出現次數為屬性值的對象。

需要注意的是,reduce是es5推出的方法,ie8及以下都不兼容。

感謝各位的閱讀!關于“Javascript中如何實現reduce函數查重”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

台江县| 香格里拉县| 六安市| 资兴市| 荥阳市| 张家川| 海原县| 阳朔县| 稷山县| 阳山县| 教育| 云梦县| 天全县| 博客| 昆山市| 娄底市| 双流县| 旬邑县| 台湾省| 定州市| 安西县| 平利县| 台北县| 武功县| 雅江县| 高唐县| 辉南县| 西乡县| 东平县| 上虞市| 米脂县| 安徽省| 普洱| 潢川县| 康保县| 八宿县| 鹤峰县| 河曲县| 三亚市| 启东市| 京山县|