<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,但這不是您想要的,對吧?所以試試這個吧