兩種方法:1、用for找到值為空的元素,用splice()刪除,語(yǔ)法“for(i=0;i<數(shù)組長(zhǎng)度;i++){if(this[i]==""||typeof(this[i])=="undefind"){this.splice(i,1);i–;}}”;2、用filter()過(guò)濾數(shù)組,語(yǔ)法“function f(v){return (v);}a2=a1.filter(f);”。
前端(vue)入門(mén)到精通課程:進(jìn)入學(xué)習(xí)
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API調(diào)試工具:點(diǎn)擊使用
本教程操作環(huán)境:windows7系統(tǒng)、ECMAScript 6版、Dell G3電腦。
es6數(shù)組去掉空數(shù)據(jù)的兩種方法
方法1:利用for循環(huán)和splice()函數(shù)
-
利用for循環(huán)遍歷數(shù)組
-
在循環(huán)體中找到值為空的元素
-
根據(jù)元素的索引,利用splice()函數(shù)將該元素去掉
實(shí)現(xiàn)代碼:
//數(shù)組去空值 var arr1=["某某","",3,5,"color","",3,"某某","color",""] console.log(arr1) //拓展數(shù)組去空值的方法 Array.prototype.removeEmpty=function () { for(var i=0;i<this.length;i++){ if(this[i]==""||typeof(this[i])=="undefind"){ this.splice(i,1); i--; } } return this; } var arr2=arr1.removeEmpty();
方法2:利用filter()函數(shù)過(guò)濾數(shù)組,返回不為空的元素
filter() 函數(shù)會(huì)調(diào)用一個(gè)回調(diào)函數(shù)來(lái)過(guò)濾數(shù)組元素,返回符合條件的所有元素(創(chuàng)建一個(gè)新數(shù)組來(lái)返回)
-
只需要將符合條件設(shè)置為“不是空數(shù)據(jù)”即可
設(shè)置過(guò)濾條件的函數(shù)的寫(xiě)法
function f(value){ return (value); }
使用filter() 函數(shù)調(diào)用一個(gè)回調(diào)函數(shù)f(value)
來(lái)過(guò)濾數(shù)組即可。
實(shí)現(xiàn)代碼:
//數(shù)組去空值 function f(v){ return (v); } var arr1=["某某","",3,5,"color","",3,"某某","color",""] console.log(arr1) var arr2=arr1.filter(f); console.log(arr2)
說(shuō)明:filter() 方法
filter() 方法創(chuàng)建一個(gè)新的數(shù)組,新數(shù)組中的元素是通過(guò)檢查指定數(shù)組中符合條件的所有元素。
作用:可以返回?cái)?shù)組中滿(mǎn)足指定條件的元素。
array.filter(function callbackfn(Value,index,array),thisValue)
function callbackfn(Value,index,array)
:一個(gè)回調(diào)函數(shù),不可省略,最多可接受三個(gè)參數(shù):
-
value:當(dāng)前數(shù)組元素的值,不可省略。
-
index:當(dāng)前數(shù)組元素的數(shù)字索引。
-
array:當(dāng)前元素屬于的數(shù)組對(duì)象。
返回值是一個(gè)包含回調(diào)函數(shù)為其返回 true 的所有值得新數(shù)組。如果回調(diào)函數(shù)為 array 的所有元素返回 false,則新數(shù)組的長(zhǎng)度為 0。
下面通過(guò)實(shí)例來(lái)具體了解一下:返回全部偶數(shù)
var a = [2,3,4,5,6,7,8]; function f (value) { if (value % 2 == 0) { return true; }else{ return false; } } var b = a.filter(f); console.log(b);
輸出結(jié)果:
【