新闻中心
J*aScript 中统计对象数组中唯一属性值的数量(包含 Null 值)

本文介绍了如何使用 J*aScript 统计对象数组中特定属性的唯一值数量,并着重处理了 `null` 值的特殊情况,即每个 `null` 值都应被视为一个独立的唯一值。通过 `reduce` 方法和缓存机制,高效地实现了这一目标。
在处理 J*aScript 对象数组时,经常需要统计特定属性的唯一值数量。 本文将介绍如何使用 J*aScript 来实现此目标,并特别关注 null 值的处理:每个 null 值都应该被视为一个独立的唯一值。
使用 reduce 方法统计唯一值
J*aScript 的 reduce 方法非常适合用于将数组中的所有元素组合成单个输出。 我们可以利用它来构建一个缓存,存储已经遇到的 userId 值,并统计唯一值的数量。
以下是一个示例代码:
万相营造
阿里妈妈推出的AI电商营销工具
168
查看详情
const array = [
{ _id: '1', userId: '5' },
{ _id: '2', userId: null },
{ _id: '3', userId: null },
{ _id: '4', userId: '1' },
{ _id: '5', userId: '2' },
{ _id: '6', userId: '4' },
{ _id: '7', userId: '4' },
{ _id: '8', userId: null },
{ _id: '9', userId: null },
{ _id: '10', userId: '2' }
];
const {count} = array.reduce((acc, obj) => {
// 如果已经缓存了 userId,则跳过
if(acc.cache.includes(obj.userId)) return acc;
// 将新的 userId 添加到缓存
if(obj.userId !== null) acc.cache.push(obj.userId);
// 增加计数
acc.count++;
return acc;
}, {cache: [], count: 0});
console.log(count); // 输出:7代码解释:
- array.reduce((acc, obj) => { ... }, {cache: [], count: 0}): reduce 方法遍历数组 array。acc 是累加器,初始值为 {cache: [], count: 0},其中 cache 用于存储已经遇到的 userId 值,count 用于记录唯一值的数量。
- if(acc.cache.includes(obj.userId)) return acc;: 检查当前的 userId 是否已经存在于 cache 中。如果存在,则说明已经统计过该值,直接返回累加器 acc,跳过后续处理。
- if(obj.userId !== null) acc.cache.push(obj.userId);: 如果 userId 不为 null,则将其添加到 cache 中,以便后续判断是否已经统计过。
- acc.count++;: 无论 userId 是否为 null,只要没有在 cache 中找到,就认为是一个新的唯一值,将计数器 count 加 1。
- return acc;: 返回更新后的累加器 acc,用于下一次迭代。
- console.log(count);: 最后,输出统计得到的唯一值数量。
总结
通过使用 reduce 方法和缓存机制,我们可以高效地统计对象数组中特定属性的唯一值数量,并且能够灵活地处理 null 值的特殊情况。 这种方法不仅代码简洁易懂,而且性能良好,适用于处理各种规模的数据集。在实际开发中,可以根据具体需求对代码进行适当的调整和优化。例如,可以使用 Set 数据结构代替数组 cache 来提升查找效率。
以上就是J*aScript 中统计对象数组中唯一属性值的数量(包含 Null 值)的详细内容,更多请关注其它相关文章!
# java
# red
# 累加器
# 组中
# 如何使用
# 数据结构
# 是一个
# 怎么做
# javascript
# 福州网站推广外包公司
# 商务网站建设美丽
# 成都网络seo
# 济南城乡建设委网站
# 中山企业网站推广多少钱
# 陶瓷推广营销策划
# 桃江网站推广电话号码
# 佛山服务关键词排名如何
# 沙洋seo优化哪家好
# 威县seo网站优化
# 有哪些
# 更受欢迎
# 它比
# 跳过
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
Win11输入法不见了怎么办_Windows11恢复语言栏显示方法
怎么在mac上运行html代码_mac运行html代码方法【指南】
不会效仿卡普空!《铁拳》制作人澄清:不采取赛事付费|直播|
QQ网页版官方账号入口 QQ网页版网页版登录指南
谷歌浏览器浏览体验优化_谷歌浏览器新版直连永久可用提示
Win11怎么查看电脑配置_Win11硬件配置检测工具使用
如何使用 Excel 发布器与 Power BI 分享 Excel 洞察
在WordPress中通过REST API获取BasicAuth保护的远程文章
动漫岛观看全网网 动漫岛在线正版动漫入口
c++如何使用TBB库进行任务并行_c++ Intel线程构建模块
AO3官方在线访问地址 Archive of Our Own最新镜像合集
双系统安装时,如何设置默认启动系统? msconfig命令了解一下!
构建轻量级网站内部消息系统:Formspree 集成指南
如何使用Go和Martini动态服务解码后的图片
夸克AO3官网入口_AO3镜像网站2025推荐
怎样把文件彻底粉碎无法恢复_Windows下安全删除敏感数据【隐私保护】
零跑汽车11月交付量达70327台 实现连续9个月正增长
一加 Nord 5 隐私权限异常_一加 Nord 5 系统安全优化
在J*a项目里如何构建对象之间的契约_接口约束的实际落地
Win11怎么关闭触摸屏_Windows 11禁用HID符合标准触摸屏
FullCalendar 自定义按钮样式定制指南
微信怎么把收藏的内容分类管理 微信收藏内容标签分类方法
J*aScript数据结构转换:将对象数组按类别分组
Win11怎么查看显卡显存 Win11显示适配器属性及专用视频内存查询
2026年发布! 美少女养成动作RPG《神剑少女战记》发布实机演示
J*aScript类型检查_j*ascript代码规范
解决 Express.js 中 PUT 请求密码修改失败的路由配置指南
Win10如何恢复误删的快捷方式_Win10重建常用软件快捷方式
J*a应用程序首次运行自动创建文件与目录的最佳实践
深入理解Go语言中Map值与方法接收器的交互:为什么需要临时变量
Centos/Linux 系统下安装 composer 的完整步骤
Win11蓝牙耳机断连怎么解决 Win11蓝牙设置重新配对与驱动更新【技巧】
处理Kafka消费者会话超时:深入理解消息处理语义与幂等性
css滚动区域卡顿如何改善_css滚动问题用will-change优化渲染
基于动态规划的房屋花卉种植最小成本算法详解
Win11怎么隐藏桌面图标 Win11一键隐藏所有桌面元素及恢复显示
《燕云十六声》两周内达九百万玩家!位居畅销榜第五
cad怎么合并重叠的线段_cad清理重复重叠线条的操作方法
AO3最新可访问网址 Archive of Our Own官方在线入口
Golang如何使用const iota_Go iota常量计数器讲解
Typer应用中灵活处理命令行参数的令牌化与解析
C++如何打印当前代码行号与文件名_C++预定义宏FILE与LINE的使用
深入理解J*a编译器的兼容性选项:从-source到--release
抖音隐秘迷城小游戏入口_ 抖音冒险解谜小游戏秒玩
微信群消息显示延迟如何解决 微信群消息刷新优化方法
电脑安装程序提示“错误1722”怎么办_Windows Installer服务问题解决【教程】
TikTok评论显示延迟如何处理 TikTok评论刷新优化方法
如何使用Node.js csv 包按条件移除含空字段的CSV记录
Composer中的^和~符号代表什么_精通Composer版本号语义化约束
WordPress插件开发:正确注册卸载钩子与避免常见陷阱


2025-10-29
浏览次数:次
返回列表