使用js,将后台返回数据中数据值为空的字段全部替换为“--“

本文介绍了一个JavaScript函数,用于将数据集中的空字段(包括null、空字符串、带空格的字符串及特殊字符‘-’)统一替换为'--'。此函数支持递归处理数组和对象,适用于多种数据结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:将下面数据中的字段为空的值全部替换为"--"

let tempArr = [
  {
    config_type: 1,
    down_num: 0,
    init_date: '2020-07-20',
    roleid: '-',
    rolename: '',
    userid: 'asdfasdfsadfas',
    username: '张三',
    other: null
  },
  {
    config_type: 1,
    down_num: 16,
    init_date: '2020-07-25',
    roleid: '',
    rolename: '',
    userid: 'asdfsadfsd',
    username: '李四',
    other: {
      config_type: 1,
      down_num: 0,
      init_date: '2020-07-26',
      roleid: 'rtytry',
      rolename: '',
      userid: [['', 'ghdgf'], 'sds', ' '], // 此处测试多维数组、带空格的字符串
      username: '刘二'
    }
  },
  {
    config_type: 2,
    down_num: 3,
    init_date: '2020-07-26',
    roleid: 'klkklj',
    rolename: '',
    userid: 'asdfadsf',
    username: '王五',
    other: false,
    getName: function () {
      return this.username
    }
  }
]

解决办法:

/**
 * 数据中有字段为空的处理, 字段为空(null、字符串为空,带空格字符串)都改为'--'
 * @param {*} initialData 数据类型包含基础类型值(布尔型数据保留)、数组、对象
 */
export const formateNullFieldData = initialData => {
  const isEmpty = val => {
    // null、字符串为空(注意存在数值为0时),带空格字符串,后台处理成的'-'
    if (!String(val) || String(val) === 'null' || !String(val).replace(/\s+/g, '') || val === '-') {
      return '--'
    }
    return val
  }

  if (initialData instanceof Array) {
    // 当数据为数组时
    initialData.forEach((val, key, array) => {
      array[key] = formateNullFieldData(val)
    })
  } else if (initialData instanceof Object) {
    // 当数据为对象时
    for (let pro in initialData) {
      initialData[pro] = formateNullFieldData(initialData[pro])
    }
  } else {
    // 当数据为基础类型时
    initialData = isEmpty(initialData)
  }
  return initialData
}

使用:formateNullFieldData(tempArr)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值