JavaScript 將陣列加入到現有物件數組中
P粉556159786
P粉556159786 2023-09-04 11:46:33
0
2
429
<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>            
P粉556159786
P粉556159786

全部回覆(2)
P粉619896145

您應該使用 some(),而不是 every()。

const bool = arr.map(group => group.values.some(val => val.id)).filter(bool => !bool).toString();

every() 方法用於檢查陣列中的所有元素是否滿足給定條件。陣列。 some() 方法用來檢查陣列中至少有一個元素是否滿足給定的條件。

P粉336536706

那是因為你的演算法不正確。 every 方法將檢查是否所有物件都有一個 id,但這不是您想要的,對吧?

所以試試這個吧

const bool = arr.map(group => group.values.some(val => val.id));
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!