我有下面的代码片段
const arr = [
{
"name": "Attestation Component 1",
"values": [
{
"component": "Attestation Component 1"
},
{
"component": "Attestation Component 1"
},
{
"component": "Attestation Component 1",
}
]
},
{
"name": "Attestation Component 2",
"values": [
{
"id": "10005884",
"url": "https://www.msn.com",
"bfaId": "G44.5.3.1N/A",
"component": "Attestation Component 2"
},
{
"id": "10005883",
"url": "https://www.hotmail.com",
"bfaId": "G44.5.3.2N/A",
"component": "Attestation Component 2"
}
]
},
{
"name": "Attestation Component 3",
"values": [
{
"id": "10005882",
"url": "https://www.rediffmail.com",
"bfaId": "G44.5.3.3N/A",
"component": "Attestation Component 3"
}
]
}
]
const bool = arr.map(group => group.values.every(val => val.id));
console.log(bool);
我有三个对象,名称分别为证明组件 1、证明组件 2、证明组件 3。我得到的预期输出为 false、true、true。这是什么原因呢?我想将该属性添加到现有对象数组中,作为 name
isInvalid: true/false
预期的 O/P(在每个具有以下键值对的对象中添加属性)
isInvalid:真/假
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
您应该使用 some(),而不是 every()。
every() 方法用于检查数组中的所有元素是否满足给定条件。阵列。 some() 方法用于检查数组中至少有一个元素是否满足给定的条件。
那是因为你的算法不正确。
every方法将检查是否所有对象都有一个 id,但这不是您想要的,对吧?所以试试这个吧