首页 > 解决方案 > 如果是对象,如何检查空值并替换它?

问题描述

我希望删除空值并更新 tempVal1。删除是在 id date id null 的数组中,该索引处的数组中的完整数据将被删除。

先感谢您

//tempVal1 received from an API
    const tempVal1 = {
      user_id: 'emp_1',
      account_id: 'random1',
      emp_name: 'John Doe',
      projects_name: [
        {name: 'project 1', date: '2021-08-10T15:40:00+00:00'},
        {name: 'project 2', date: ''},
        {name: 'project 3', date: '2021-08-10T15:40:00+00:00'},
        {name: 'project 4', date: ''},
      ],
      manager: 'stella',
      companies_worked_at: [
        {name: 'company 1', date: ''},
        {name: 'company 2', date: ''},
        {name: 'company 3', date: '2021-08-10T15:40:00+00:00'},
        {name: 'company 1', date: '2021-08-10T15:40:00+00:00'},
      ],
      devices: [
        {name: 'device 1', date: '2021-08-10T15:40:00+00:00'},
        {name: 'device 2', date: '2021-08-10T15:40:00+00:00'},
        {name: 'device 3', date: '2021-08-10T15:40:00+00:00'},
        {name: 'device 4', date: '2021-08-10T15:40:00+00:00'},
        {name: 'device 6', date: ''},
        {name: 'device 5', date: '2021-08-10T15:40:00+00:00'},
      ],
      emp_wife: 'Jane Doe',
      places_visited: [
        {name: 'place 1', date: '2021-08-10T15:40:00+00:00'},
        {name: 'place 2', date: '2021-08-10T15:40:00+00:00'},
        {name: 'place 3', date: '2021-08-10T15:40:00+00:00'},
      ],
      team_mates: [{name: '', date: ''}],
      present_status: 'Working',
    };

标签: javascriptreactjs

解决方案


看看这个,可能有帮助:

const obj = {
      user_id: 'emp_1',
      account_id: 'random1',
      emp_name: 'John Doe',
      projects_name: [
        {name: 'project 1', date: '2021-08-10T15:40:00+00:00'},
        {name: 'project 2', date: ''},
        {name: 'project 3', date: '2021-08-10T15:40:00+00:00'},
        {name: 'project 4', date: ''},
      ],
      manager: 'stella',
      companies_worked_at: [
        {name: 'company 1', date: ''},
        {name: 'company 2', date: ''},
        {name: 'company 3', date: '2021-08-10T15:40:00+00:00'},
        {name: 'company 1', date: '2021-08-10T15:40:00+00:00'},
      ],
      devices: [
        {name: 'device 1', date: '2021-08-10T15:40:00+00:00'},
        {name: 'device 2', date: '2021-08-10T15:40:00+00:00'},
        {name: 'device 3', date: '2021-08-10T15:40:00+00:00'},
        {name: 'device 4', date: '2021-08-10T15:40:00+00:00'},
        {name: 'device 6', date: ''},
        {name: 'device 5', date: '2021-08-10T15:40:00+00:00'},
      ],
      emp_wife: 'Jane Doe',
      places_visited: [
        {name: 'place 1', date: '2021-08-10T15:40:00+00:00'},
        {name: 'place 2', date: '2021-08-10T15:40:00+00:00'},
        {name: 'place 3', date: '2021-08-10T15:40:00+00:00'},
      ],
      team_mates: [{name: '', date: ''}],
      present_status: 'Working',
    };

// This is the piece of code you need
Object.keys(obj).forEach(e => Array.isArray(obj[e]) && (obj[e] = obj[e].filter(e => e.date)));

这将遍历对象中的每个键,如果该值是一个数组,则过滤其中没有有效日期的那些元素(非空,未定义,...)


推荐阅读