摘要:創(chuàng)建一個新數(shù)組,包含原數(shù)組中所有的非假值元素。例如和都是被認為是假值。
創(chuàng)建一個新數(shù)組,包含原數(shù)組中所有的非假值元素。例如false, null, 0, "", undefined, 和 NaN 都是被認為是“假值”。
以下是自己實現(xiàn)的compact()
compact:(array)=>{ let result = [] //判斷參數(shù)是否是數(shù)組 如果不是數(shù)組 直接返回一個空數(shù)組 //也可以用es6提供的Array.isArray(array)來判斷 更簡潔 if(!Object.prototype.toString.call(array)==="[object Array]") { return result } array.forEach(element => { if(element) { result.push(element) } }); return result }
lodash的實現(xiàn)
compact:(array)=>{ var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = []; while (++index < length) { var value = array[index]; if (value) { result[resIndex++] = value; } } return result; }
這樣寫的好處是 傳入一個字符串會返回一個數(shù)組 好像也沒其他作用,為什么不直接判斷是否是數(shù)組呢?
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/105492.html
摘要:最近打算去研究下的源碼,準備把大部分方法都實現(xiàn)一遍。先自己寫,然后在對照源碼。第一個是將數(shù)組拆分成多個長度的區(qū)塊,并將這些區(qū)塊組成一個新數(shù)組。 最近打算去研究下lodash的源碼,準備把大部分方法都實現(xiàn)一遍。先自己寫,然后在對照源碼。第一個是 chunk 將數(shù)組(array)拆分成多個 size 長度的區(qū)塊,并將這些區(qū)塊組成一個新數(shù)組。 如果array 無法被分割成全部等長的區(qū)塊,那么...
摘要:是一個包含了所有參數(shù)的類數(shù)組對象,比如說第一個參數(shù)可以通過獲取??赡苁呛鸵粯拥脑颍捎诩^函數(shù)的原因,指向了父級作用域。參數(shù)搭配的變量是一個數(shù)組,該變量將多余的參數(shù)放入數(shù)組中。 創(chuàng)建一個新數(shù)組,將array與任何數(shù)組 或 值連接在一起 自行實現(xiàn) concat:function(){ let length = arguments.length let re...
摘要:首先我們先說一下這個函數(shù)的作用,這個函數(shù)接收一個數(shù)組作為參數(shù)然后將數(shù)組中所有通過布爾轉換可以變?yōu)榈闹等コ龔亩梢粋€新的數(shù)組。 原文首發(fā)于Lodash源碼講解 這是我們閱讀Lodash源碼的第3篇博客,在這篇文章里我們來學習一下Lodash的compact方法。 compact函數(shù)內部沒有依賴別的函數(shù),讓我們先來看一下compact函數(shù)的源碼。 /** * Creates an ar...
摘要:到這里,源碼分析完了。但是,有兩個致命的特性的遍歷不能保證順序會遍歷所有可枚舉屬性,包括繼承的屬性。的遍歷順序依賴于執(zhí)行環(huán)境,不同執(zhí)行環(huán)境的實現(xiàn)方式可能會不一樣。 小時候,鄉(xiāng)愁是一枚小小的郵票, 我在這頭, 母親在那頭。 長大后,鄉(xiāng)愁是一張窄窄的船票, 我在這頭, 新娘在那頭。 后來啊, 鄉(xiāng)愁是一方矮矮的墳墓, 我在外頭, 母親在里頭。 而現(xiàn)在, 鄉(xiāng)愁是一灣淺淺的海峽, 我在這頭, 大...
摘要:文檔地址中文文檔英文文檔源碼地址創(chuàng)建一個新數(shù)組,包含原數(shù)組中所有的非假值元素。例如和都是被認為是假值。下面對比一下兩者效率,如下圖傳送門可以看到使用更快,如果沒有兼容性需求,還是使用原生函數(shù)比較好。 百忙之中(閑來無事)想抽點時間好好讀一下源碼,于是就選了Lodash來寫一個系列罷。讀源碼順序就按照loadsh文檔順序來。 文檔地址:中文文檔?? 英文文檔源碼地址:gayhub ...
閱讀 2522·2021-09-22 15:15
閱讀 677·2021-09-02 15:11
閱讀 1817·2021-08-30 09:48
閱讀 1923·2019-08-30 15:56
閱讀 1543·2019-08-30 15:52
閱讀 2080·2019-08-30 15:44
閱讀 465·2019-08-29 16:29
閱讀 1568·2019-08-29 11:06