回答es6数组怎么去掉空数据

 所属分类:web前端开发

 浏览:110次-  评论: 0次-  更新时间:2022-11-05
描述:更多教程资料进入php教程获得。 两种方法:1、用for找到值为空的元素,用splice()删除,语法“for(i=0;i<数组长度;i++){if(this[i]==""||ty...
更多教程资料进入php教程获得。

两种方法:1、用for找到值为空的元素,用splice()删除,语法“for(i=0;i<数组长度;i++){if(this[i]==""||typeof(this[i])=="undefind"){this.splice(i,1);i--;}}”;2、用filter()过滤数组,语法“function f(v){return (v);}a2=a1.filter(f);”。

本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。

es6数组去掉空数据的两种方法

方法1:利用for循环和splice()函数

  • 利用for循环遍历数组

  • 在循环体中找到值为空的元素

  • 根据元素的索引,利用splice()函数将该元素去掉

实现代码:

//数组去空值
    var arr1=["某某","",3,5,"color","",3,"某某","color",""]
    console.log(arr1)
  //拓展数组去空值的方法
    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();
登录后复制

1.png

方法2:利用filter()函数过滤数组,返回不为空的元素

filter() 函数会调用一个回调函数来过滤数组元素,返回符合条件的所有元素(创建一个新数组来返回)

  • 只需要将符合条件设置为“不是空数据”即可

设置过滤条件的函数的写法

function f(value){
	return (value);
}
登录后复制

使用filter() 函数调用一个回调函数f(value)来过滤数组即可。

实现代码:

//数组去空值
	
function f(v){
	return (v);
}
var arr1=["某某","",3,5,"color","",3,"某某","color",""]
console.log(arr1)
var arr2=arr1.filter(f);
console.log(arr2)
登录后复制

2.png

说明:filter() 方法

filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

作用:可以返回数组中满足指定条件的元素。

array.filter(function callbackfn(Value,index,array),thisValue)
登录后复制

function callbackfn(Value,index,array):一个回调函数,不可省略,最多可接受三个参数:

  • value:当前数组元素的值,不可省略。

  • index:当前数组元素的数字索引。

  • array:当前元素属于的数组对象。

返回值是一个包含回调函数为其返回 true 的所有值得新数组。如果回调函数为 array 的所有元素返回 false,则新数组的长度为 0。

下面通过实例来具体了解一下:返回全部偶数

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);
登录后复制

输出结果:

3.png

【相关推荐:javascript视频教程、编程视频】

以上就是es6数组怎么去掉空数据的详细内容,更多请关注zzsucai.com其它相关文章!

 标签: javascript,ES6,
积分说明:注册即送10金币,每日签到可获得更多金币,成为VIP会员可免金币下载! 充值积分充值会员更多说明»

讨论这个素材(0)回答他人问题或分享使用心得奖励金币

〒_〒 居然一个评论都没有……

表情  文明上网,理性发言!