摘要:常見的思路是先用方法遍歷一次,或其它方法遍歷,總之是把要去掉的元素改成,然后再遍歷新數組,把的元素去掉。那么有沒有遍歷一次就可以把沒用的元素去掉的辦法呢有的,如下只需要一個簡單的循環就搞定啦。
經常做后臺取數據,渲染到頁面工作的前端童鞋可能都碰到過這種需求:那就是如果后臺傳給前端的數據要二次處理,一個數組,其中具有某種共同特征的元素是我們不需要的,必須要把它刪除掉,這時候怎么做呢。
常見的思路是:先用map方法遍歷一次,或其它方法遍歷,總之是把要去掉的元素改成undefined,然后再遍歷新數組,把undefined的元素去掉。總之就是非常麻煩。
那么有沒有遍歷一次就可以把沒用的元素去掉的辦法呢?
有的,如下:
var arr = [ { status:0 },{ status:1 },{ status:0 },{ status:0 },{ status:0 },{ status:3 },{ status:0 },{ status:7 },{ status:0 },{ status:2 }]; console.log(arr); for(var i=0,flag=true,len=arr.length;i只需要一個簡單的for循環就搞定啦。
我在for循環里設了個 flag 標志,并在后面的 i++ 位置做了判斷,flag為true則加,為false則不變。
這樣就可以解決,splice方法刪掉一個元素后,后面緊鄰的元素不會被遍歷到的問題。
特別注意,for循環里面的 if 要先判斷一下 arr[i] 的存在與否。我目前測試的這種辦法是沒有漏洞的,如果大家用的時候發現有任何漏洞的話,希望能回復告知我一下,或者哪位大神有更好的實現這種需求的辦法,麻煩在評論里寫出來,大家一起探討,共同進步!
深知sf里大神很多,小弟就不在這里過多廢話了。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/86480.html
摘要:循環方法方法不改變原數組方法會給原數組中的每個元素都按順序調用一次函數。篩選出過濾出數組中符合條件的項組成新數組代碼方法方法為數組中的每個元素執行一次函數,直到它找到一個使返回表示可轉換為布爾值的值的元素。 showImg(https://segmentfault.com/img/bV2QTD?w=1600&h=500); 前言 JavaScript 發展至今已經發展出多種數組的循環遍...
摘要:面試筆記,該部分為下部分。構造函數模式使用自定義的構造函數與普通函數一樣,只是用它來創建對象,定義對象類型如的屬性和方法。使用原型來添加屬性共享一個原型對象的方法原型是指向原型對象的,這個原型對象與構造函數沒有太大關系,唯一的關系 js&jq面試筆記,該部分為下部分。 字符串相關 1、定義一個方法,用于將string中的每個字符之間加一個空格,并輸出 如:hello -> h e l ...
摘要:數組也是對象數據類型的數組也有屬性名,只不過屬性名是數字,我們把數字屬性名稱之為它的索引數組是以數字作為索引,索引從零開始,有一個屬性代表數組的長度。 Array 數組也是對象數據類型的 typeof [] ->object數組也有屬性名,只不過屬性名是數字,我們把數字屬性名稱之為它的索引:數組是以數字作為索引,索引從零開始,有一個length屬性代表數組的長度。 showImg(h...
閱讀 1750·2021-09-28 09:43
閱讀 1111·2021-09-23 11:22
閱讀 2707·2021-09-14 18:05
閱讀 1823·2019-08-30 15:52
閱讀 2812·2019-08-30 10:55
閱讀 2007·2019-08-29 16:58
閱讀 1323·2019-08-29 16:37
閱讀 3031·2019-08-29 16:25