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