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>
P粉6198961452023-09-05 10:42:18
您應該使用 some(),而不是 every()。
const bool = arr.map(group => group.values.some(val => val.id)).filter(bool => !bool).toString();
every() 方法用於檢查陣列中的所有元素是否滿足給定條件。陣列。 some() 方法用來檢查陣列中至少有一個元素是否滿足給定的條件。
P粉3365367062023-09-05 10:07:13
那是因為你的演算法不正確。 every
方法將檢查是否所有物件都有一個 id,但這不是您想要的,對吧?
所以試試這個吧
const bool = arr.map(group => group.values.some(val => val.id));