坚果大叔 坚果大叔
  • 首页
  • 闲言碎语
  • 技术
  • 生活
  • 记录
  • 朋友
  • 热点新闻
  • 常用代码
  • 工具箱
  • 关于
首页 › 技术 › 将数组中空值字段赋默认值!

将数组中空值字段赋默认值!

坚果大叔
2023-04-25 14:49:11技术阅读 1,901
export const replaceEmptyData = (obj, defaultValue = '-') =>
  Array.isArray(obj)
    ? obj.map(item => replaceEmptyData(item, defaultValue))
    : Object.fromEntries(
        Object.entries(obj).map(([key, value]) => [key, !value ? defaultValue : value])
      );

在上述代码中,我们首先判断传入的对象是否为数组,如果是数组则对其进行map()操作,否则将其转换成键值对数组并调用Object.fromEntries()方法生成一个新的对象。

如果传入的对象为数组,则先使用map()方法对其进行遍历,然后对每个元素调用replaceEmptyWithDefault()函数进行处理,并将处理结果作为新数组返回。如果传入的对象不是数组,则使用Object.entries()方法将对象转换成键值对数组,然后使用map()方法对每个键值对进行遍历。对于每个键值对,我们使用解构赋值将其拆分成键 key 和值 value,然后使用空值合并运算符 ?? 将空值替换为默认值 defaultValue。最终,我们使用Object.fromEntries()方法将所有键值对结合成一个新的对象并返回。

使用这个函数,我们可以很方便地处理数组和对象中的空值。例如:

import { replaceEmptyWithDefault } from './path/to/your/module';

const arr = [
  { name: 'Alice', age: 18 },
  { name: 'Bob', age: null },
  { name: 'Charlie', age: undefined }
];

const obj = {
  name: 'Alice',
  age: null,
  gender: ''
};

const result1 = replaceEmptyWithDefault(arr, '-');
const result2 = replaceEmptyWithDefault(obj, '-');

console.log(result1);
// Output:
// [
//   { name: 'Alice', age: 18 },
//   { name: 'Bob', age: '-' },
//   { name: 'Charlie', age: '-' }
// ]

console.log(result2);
// Output:
// { name: 'Alice', age: '-', gender: '-' }
赞赏 赞(0)
周末出游,惊喜相伴——水牛的美丽邂逅。
上一篇
5.1游记
下一篇
在小程序中查看
搜你想看的
聚合文章
如何实现深拷贝?
简单!三步实现微信消息同步!!
一起普通车祸带来的思考🤔
JS批量下载网页中的图片!
闲言碎语
Memos
npm install 出现 Error:EISDIR:illegal operation on a directory 的错误提示!
2025-03-31 19:02:11
559 0 0
iphone 利用 Scriptable 添加网上国网电费小组件
2025-01-06 20:40:20
5,004 6 2
在博客中加上memos记录展示。
2024-12-25 23:41:27
2,333 5 2
网页点击平滑滚动效果~
2024-10-17 16:43:08
2,037 4
  • 0
博主

一位佛系的前端开发者,略通摄影,乐于尝试新事物,热衷于美食。

友链
故事胶片
公众号
坚果大叔 执行上下文 卖坚果的怪叔叔 Dacking
Copyright © 2017-2025 坚果大叔

开往-友链接力

萌ICP备20230818号

苏ICP备18048410号-3
  • 首页
  • 闲言碎语
  • 技术
  • 生活
  • 记录
  • 朋友
  • 热点新闻
  • 常用代码
  • 工具箱
  • 关于
# CSS # # JavaScript # # vue # # 微信 # # 生活 #
坚果大叔
317
文章
125
评论
365
喜欢