高效编程:如何优雅地判断数组中所有对象的值不为空?

news2025/2/4 2:19:42

前言

在前端开发中,判断数组中所有对象的值是否都不为空是一个常见的任务。这个任务可能涉及到多个对象和多个属性,因此需要一种简洁而高效的方法来处理。本文将介绍三种不同的方法,帮助你轻松应对这个问题。


方法一:使用 every() 方法和 Object.values() 方法

every() 方法

参数描述
currentValue必须。当前元素的值
index可选。当前元素的索引值
arr可选。当前元素属于的数组对象

Object.values() 方法

参数描述
obj它是要返回其可枚举自身属性值的对象

every() 方法用于检查数组中的每个元素是否满足指定的条件。Object.values() 方法用于获取对象的所有值,并返回一个值的数组。在这个例子中,我们使用 every() 方法来检查每个对象的值是否都不为空。在测试函数中,我们使用 Object.values() 方法获取对象的所有值,并使用 every() 方法来检查每个值是否不为空字符串。如果所有对象的值都不为空,则 allValuesNotEmpty 变量的值为 true,否则为 false

代码如下:

const arr = [
  { name: "xhong", age: "25" },
  { name: "xlan", age: "30" },
  { name: "xshi", age: "" },
];
const allValuesNotEmpty = arr.every((obj) => {
  return Object.values(obj).every((value) => value !== "");
});
console.log(allValuesNotEmpty); // 输出 false

控制台打印

在这里插入图片描述


方法二:使用 every() 方法和 Object.keys() 方法

Object.keys() 方法

参数描述
obj要返回其枚举自身属性的对象

Object.keys() 方法用于获取对象的所有键,并返回一个键的数组。在这个例子中,我们使用 every() 方法来检查每个对象的值是否都不为空。在测试函数中,我们使用 Object.keys() 方法获取对象的所有键,并使用 every() 方法来检查每个键对应的值是否不为空字符串。如果所有对象的值都不为空,则 allValuesNotEmpty 变量的值为 true,否则为 false

代码如下:

const arr = [
  { name: "li", age: "25" },
  { name: "zhang", age: "" },
  { name: "shi", age: "35" },
];
const allValuesNotEmpty = arr.every((obj) => {
  return Object.keys(obj).every((key) => obj[key] !== "");
});
console.log(allValuesNotEmpty); // 输出 false

控制台打印

在这里插入图片描述


方法三:使用 every() 方法和 for…in 循环

for...in 循环用于遍历对象的所有可枚举属性。在这个例子中,我们使用 every() 方法来检查每个对象的值是否都不为空。在测试函数中,我们使用 for...in 循环遍历对象的所有属性,并检查每个属性对应的值是否不为空字符串。如果所有对象的值都不为空,则 allValuesNotEmpty 变量的值为 true,否则为 false

代码如下:

const arr = [
  { name: "j", age: "" },
  { name: "k", age: "30" },
  { name: "a", age: "35" },
];
const allValuesNotEmpty = arr.every((obj) => {
  for (let key in obj) {
    if (obj[key] === "") {
      return false;
    }
  }
  return true;
});
console.log(allValuesNotEmpty); // 输出 false

控制台打印

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/762014.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

原生js实现将图片内容复制到剪贴板

核心代码 /*复制图片*/ copyImg(dom) {/* 警告:dom不能是img标签,建议用DIV标签包裹img标签,否者会报错!不支持复制背景图! */dom.style.userSelect auto;let selection getSelection(), range document.createRan…

【AT89C52单片机项目】数字密码锁设计

实验目的 使用单片机设计数字密码锁。 实验仪器 一套STC89C52RC开发板套件,包括STC89C52RC开发板,以及USB烧录线。 设计要求 1、有设置密码、开锁工作模式; 2、可以每次都设置密码,也可以设置一次密码多次使用。 实验原理 …

JS加密之JS基础大考验

JS加密之JS基础大考验 工欲利其器 必先善其事 JavaScript(简称JS)是一种高级、动态、弱类型的编程语言,主要用于前端网页开发,但也可用于后端服务器开发(通过Node.js)。下面是JavaScript的一些特点&#…

windows 安装Vcenter6.7避坑指南

1、推荐windows server 2016。第一次选择windows 2019会出现很多错误 2、内存要求:8G以上 3、如果安装了VMtools,则需要把VCC全部卸载了(控制面板-->卸载程序)

【Linux初阶】基础IO - 软硬链接 | 初识、理解、应用 文件acm时间

🌟hello,各位读者大大们你们好呀🌟 🍭🍭系列专栏:【Linux初阶】 ✒️✒️本篇内容:初识软硬链接,软硬链接的区别,理解软硬链接,软硬链接的应用,文…

Access简单应用

不说废话,直入正题. 关于Access的用法 一开始大家想用添加数据快速生成sql语句,其实在这里 java链接Access数据库需要ODBC连接池 机器jar包 ODBC连接池在 首次添加需要配置如上图所示,jar包链接在下面,直接放到项目下即可 UCanAccess - Browse Files at SourceForge.net下载…

前端学习记录~2023.7.13~CSS杂记 Day6

前言一、基本文字和字体样式1、CSS 中的文字样式涉及什么2、字体(1)颜色(2)字体种类a. 网络安全字体b. 默认字体c. 字体栈 (3)字体大小(4)字体样式(5)字体粗细…

基于SpringBoot+vue的交流互动系统设计与实现

博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

C语言strcmp()函数学习

strcmp函数是string compare(字符串比较)的缩写&#xff0c;用于比较两个字符串并根据比较结果返回整数&#xff1b; strcmp(str1,str2)&#xff1b; 若str1str2&#xff0c;则返回零&#xff1b;若str1<str2&#xff0c;则返回负数&#xff1b;若str1>str2&#xff0c;则…

尚硅谷--Vue从入门到精通

尚硅谷–Vue从入门到精通 第1章&#xff1a;Vue核心 1.1 Vue简介 1.1.1 Vue是什么&#xff1f; 一套用于构建用户界面的渐进式JS框架。 1.1.2 谁开发的&#xff1f; ——尤雨溪。 2015-10-27 正式发布 Vue1.0.0 Evangelion&#xff08;新世纪福音战士&#xff09;2016-1…

【PythonBA】商业分析:Business Analytics 的理解

猛戳订阅&#xff01; &#x1f449; 《一起玩蛇》&#x1f40d; &#x1f4dc; 本章目录&#xff1a; Ⅰ. BA 的基础概念 0x00 什么是商业分析&#xff08;Business Analytics&#xff09; 0x01 Explain 和 Predict 0x02 如何去进行分析&#xff1f; 0x03 Python 数据分…

Flutter加载Html

Flutter_Fai_Webview 插件可实现的功能&#xff1a; 同时适配于 Android Ios 两个平台通过 url 来加载渲染一个Html 页面加载 Html 文本数据 如 <html> .... </html>等加载 Html 标签数据 如 <p> ... </p>实现 WebView 加载完成后&#xff0c;自动测量…

【报错】Failed to determine a suitable driver class

文章目录 是否需要mybatis依赖&#xff1a;不需要排除resources未编译 报错信息 *************************** APPLICATION FAILED TO START ***************************Description:Failed to configure a DataSource: url attribute is not specified and no embedded datas…

Python实现HBA混合蝙蝠智能算法优化循环神经网络回归模型(LSTM回归算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 蝙蝠算法是2010年杨教授基于群体智能提出的启发式搜索算法&#xff0c;是一种搜索全局最优解的有效方法…

【2023江西省研究生数学建模竞赛】第三题 植物的多样性 48页论文及Python代码

【2023江西省研究生数学建模竞赛】第三题 植物的多样性 48页论文及Python代码 相关链接 【江西省研究生数学建模竞赛】第一题 蒸汽发生器倒U型管内液体流动 70页论文及MATLAB代码 【江西省研究生数学建模竞赛】第一题 蒸汽发生器倒U型管内液体流动 70页论文及MATLAB代码 【2…

IntelliJ IDEA 2023.2 新版本即将发布,拥抱 AI

IntelliJ IDEA 近期连续发布多个EAP版本&#xff0c;官方在对用户体验不断优化的同时&#xff0c;也新增了一些不错的功能&#xff0c;尤其是人工智能助手补充&#xff0c;AI Assistant&#xff0c;相信在后续IDEA使用中&#xff0c;会对开发者工作效率带来不错的提升。 以下是…

亚信科技 AntDB 数据库与星辰天合全产品体系完成兼容互认

近日&#xff0c;亚信科技 AntDB 数据库与星辰天合全产品体系完成兼容互认。经过双方团队的严格测试&#xff0c;AntDB 数据库与天合翔宇分布式存储系统、统一数据平台 XEDP、超融合平台 XHERE 等产品完全兼容&#xff0c;整体运行稳定高效。 双方产品的兼容互认完成&#xff…

基于Java+SpringBoot+vue的早餐店点餐系统设计与实现

博主介绍&#xff1a;✌擅长Java、微信小程序、Python、Android等&#xff0c;专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3fb; 不然下次找不到哟 Java项目精品实战案…

代理辅助多任务优化算法(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

SpringBoot集成海康网络设备SDK

目录 SDK介绍 概述功能下载对接指南集成 初始化项目初始化SDK 初始化SDK概述新建AppRunner新建SdkInitService新建InitSdkTask新建 HCNetSDK调用业务接口部署 拷贝so库文件到部署目录追加环境变量追加so库加载路径验证SDK初始化是否成功代码 SDK介绍 概述 设备网络SDK是基于…