源地址
Extending the native Array prototype CodejavascriptArray.prototype.clean = function(deleteValue) { for (var i = 0; i < this.length; i++) { if (this[i] == deleteValue) { this.splice(i, 1); i--; } } return this; };Usage
javascripttest = new Array("","One","Two","", "Three","","Four").clean(""); test2 = [1,2,,3,,3,,,,,,4,,4,,5,,6,,,,]; test2.clean(undefined);Pure Javascript Description
You can simply push the existing elements into other array (the example removes every "falsy" value: undefined, null, 0, false, NaN and "").
Codejavascriptfunction cleanArray(actual){ var newArray = new Array(); for(var i = 0; iSimple DescriptionUsage var result = cleanArray([1,2,,3,,3,,,,,,4,,4,,5,,6,,,,]);javascript
If you"ve got Javascript 1.6 or later you can use Array.filter using a trivial return true callback function.
Since .filter automatically skips missing elements in the original array.
The MDN page linked above also contains a nice error-checking version of filter that can be used in JavaScript interpreters that don"t support the official version.
Note that this will not remove null entries nor entries with an explicit undefined value, but the OP specifically requested "missing" entries.
Codejavascriptarr = arr.filter(function() { return true; });
javascriptarr = arr.filter(function(n) { return n != undefined; });
javascript// only for arrays items which are numbers is numbers strings arr = arr.filter(Number)
javascript[1, false, "", undefined, 2].filter(Boolean); // [1, 2]
javascript// only for single array items of type text ["","1","2",3,,"4",,undefined,,,"5"].join("").split("");JQuery Code
javascriptarr = $.grep(arr, function(n){ return n; });Underscope Code
javascript_.filter([1, false, "", undefined, 2], Boolean); // [1, 2]
javascript_.compact([1, false, "", undefined, 2]); // [1, 2]Cool Way Description
Using ES6. IE support for filter is IE9 standards mode.
Codejavascriptvar arr = [1,2,null, undefined,3,,3,,,0,,,4,,4,,5,,6,,,,]; var temp = []; for(let i of arr) { // copy each non-empty value to the "temp" array i && temp.push(i); } arr = temp; delete temp; // discard the variable arr // [1, 2, 3, 3, 4, 4, 5, 6]Iteration Code
javascriptvar arr = [1,2,null, undefined,3,,3,,,0,,,[],,{},,5,,6,,,,]; var len = arr.length, i; for(i = 0; i < len; i++ ) { // copy non-empty values to the end of the array arr[i] && arr.push(arr[i]); } // cut the array and leave only the non-empty values arr.splice(0 , len); arr // [1,2,3,3,[],Object{},5,6]
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/85424.html
摘要:文章首發(fā)于基于的源碼版權(quán)所有,和或其附屬公司。使用須遵守許可條款。的迭代器會(huì)盡最大的努力拋出異常。因此,寫程序依賴這個(gè)異常為了正確性這點(diǎn)是錯(cuò)誤的,迭代器的行為僅僅被用來(lái)檢查程序中的。這個(gè)類是集合框架的一員。 文章首發(fā)于:clawhub.club 基于 JDK1.8 的ArrayList源碼: /* * Copyright (c) 1997, 2017, Oracle and/or...
摘要:本文講解常用種數(shù)據(jù)類型通過(guò)剖析源碼弄清楚每一種數(shù)據(jù)類型所有的內(nèi)置函數(shù),理解每一個(gè)函數(shù)的參數(shù)返回值使用場(chǎng)景是什么。 本文講解Python常用7種數(shù)據(jù)類型:int, float, str, list, set, dict. 通過(guò)剖析源碼弄清楚每一種數(shù)據(jù)類型所有的內(nèi)置函數(shù),理解每一個(gè)函數(shù)的參數(shù)、返回值、使用場(chǎng)景是什么。 一、整型 int Python3.6源碼解析 class int(obj...
摘要:容器相關(guān)的操作及其源碼分析說(shuō)明本文是基于分析的。通常,我們通過(guò)迭代器來(lái)遍歷集合。是接口所特有的,在接口中,通過(guò)返回一個(gè)對(duì)象。為了偷懶啊,底層使用了迭代器。即返回的和原在元素上保持一致,但不可修改。 容器相關(guān)的操作及其源碼分析 說(shuō)明 1、本文是基于JDK 7 分析的。JDK 8 待我工作了得好好研究下。Lambda、Stream。 2、本文會(huì)貼出大量的官方注釋文檔,強(qiáng)迫自己學(xué)英語(yǔ),篇幅...
摘要: // Backbone.js 1.1.2 // (c) 2010-2014 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors // Backbone may be freely distributed under the MIT license. // For ...
閱讀 1458·2021-09-22 16:04
閱讀 2809·2019-08-30 15:44
閱讀 896·2019-08-30 15:43
閱讀 776·2019-08-29 15:24
閱讀 1857·2019-08-29 14:07
閱讀 1146·2019-08-29 12:30
閱讀 1741·2019-08-29 11:15
閱讀 2751·2019-08-28 18:08