javascript - 如果是对象,如何检查空值并替换它?
问题描述
我希望删除空值并更新 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',
};
解决方案
看看这个,可能有帮助:
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)));
这将遍历对象中的每个键,如果该值是一个数组,则过滤其中没有有效日期的那些元素(非空,未定义,...)
推荐阅读
- javascript - 在 Wordperss 中从 API 创建详细信息页面
- admin - Nextcloud,通过 occ 命令将用户添加为管理员组
- reactjs - 反应中带有搜索功能的未处理的运行时错误
- oracle - 如何强制 Oracle 在带有“order by”子句的查询的内联视图中使用索引
- python - 无法从 Pandas read_csv 正确读取数据
- python - 发出 GET 请求时出现奇怪的 JSONDecodeError
- html - 托管 R Shiny 应用程序
- reactjs - 反应路由器切换基本名称
- java - 使用 GraalVM native-image-maven-plugin 构建本机映像时出错
- rust - 支持可能生命周期的高阶函数