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