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

前言

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


方法一:使用 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

控制台打印

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水星记_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值