美文网首页
处理数组空值

处理数组空值

作者: 坏丶毛病 | 来源:发表于2021-06-11 09:30 被阅读0次

前言:大家是不是经常很头疼数据中存在一些诸如undefined、null等字符的情况呢?本文介绍如果快速过滤掉这些数据

用map操作数组一般是很常见的使用方式,但是map需要我们返回一个值,我们通常会判断这个值是否存在,存在才会返回,如下:

const cameraData = collect.map(item => {
    const res = await service.getCameraInfo(item.id);
    if(res) return res;
})

但是呢,eslint/snoar又会要求我们返回一个默认值,即当if条件不成立时,返回一个其他值,如下:

const cameraData = collect.map(item => {
    const res = await service.getCameraInfo(item.id);
    if(res) return res;
    return null;
})

这样有可能会导致我们最终拿到的数据存在一些实际并不需要的返回值,结果如下:

camera : [
    { cameraId: '1', cameraName: '摄像头一', cameraUrl: 'http://1.2.3.4.flv' },
    { cameraId: '2', cameraName: '摄像头二', cameraUrl: 'http://1.2.3.5.flv'  },
    null
]

还有一种场景是,我们会在map里去获取数据里某个指定的字段返回后组成一个数组,当不含有这个字段也会默认返回undefined,如下:

const data = [
    { name: '123', count: 1 },
    { name: '456', count: 2 },
    { name: '789', count: 3 },
    { count: 1, age: 23 },
]

const result = data.map(item => item.name);
// result : ['123', '456', '789', undefined]

所以处理掉数据中这些不需要的空值就是必要的。

进入主题:本文推荐两种处理数组中空值/不合法值的方式,通过 filter 方法

方法一:通过Boolean类型转换过滤掉为 false 的值
const data = ['1', 2, '3.jpg', '', ' ', undefined, null, false]
const fiterResult1 = data.filter(Boolean);
// fiterResult1 : ["1", 2, "3.jpg", " "]
方法二:通过 逻辑与 简写实现
const data = ['1', 2, '3.jpg', '', ' ', undefined, null, false]
const fiterResult2 = data.filter(item => item);
// fiterResult1 : ["1", 2, "3.jpg", " "]

// 上述方法相当于:判断item是否存在,逻辑与,前者存在,然后判断后者是否存在,返回,但是两者都是同一元素,即可以省略
// const fiterResult2 = data.filter(item => item && item);

// 即如下 :
/* 
    const fiterResult2 = data.filter(item => {
        if(item) return item
    });
*/

当然了,方法其实还有很多,本文就简单的介绍这两种,剩下的大家自己摸索吧。

期待能够对你有所帮助~~

如有问题,请指出,接受批评。

相关文章

  • 处理数组空值

    前言:大家是不是经常很头疼数据中存在一些诸如undefined、null等字符的情况呢?本文介绍如果快速过滤掉这些...

  • runtime 交换方法应用

    解决数组添加空值崩溃 解决字典添加空值崩溃 监控点击事件

  • 利用runtime 解决字典数组 空值处理

    https://github.com/MrLujh/SafeObject

  • iOS 获取数组最大值最小值

    如何优雅的处理数组?如何不使用遍历方法处理。 1.获取数组最大值、最小值 保证数组里存储NSNumber对象例如处...

  • swift基础-4-数组

    数组定义:OC:有值数组 空数组 不可变数组:NSArray可变数组:NSMutableArray swift:有...

  • JS- 数组的方法

    可利用以下几种方式清空数组: 直接赋空值,改变数组长度为0,splice(0), 循环pop/shift直接赋空值...

  • React添加评论和删除评论组件

    提前准备:设置一个空的数组,一个空的value值。数组用于渲染li标签列表,value值是输入框初始值。 思路:获...

  • empty 和 isset

    empty 判断变量的值或者数组是不是空 为空返回true,不为空返回false $str的值为 0 '0' ''...

  • php中如何判定一个数组是否为空,值是否存在?

    数组为空:指的是数组里面没有包含任何元素。 判断数组为空的方式有很多种,如下 所示: php在数组中查找某个值是否...

  • 简化代码之Java

    1. 去除数组中的空值和null值,并返回新的数组 2. 拼接字符串,若字符串不为空则以空格隔开,为空则忽略(比如...

网友评论

      本文标题:处理数组空值

      本文链接:https://www.haomeiwen.com/subject/tqrceltx.html