搜尋

首頁  >  問答  >  主體

JavaScript 將陣列加入到現有物件數組中

<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粉556159786P粉556159786454 天前454

全部回覆(2)我來回復

  • P粉619896145

    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() 方法用來檢查陣列中至少有一個元素是否滿足給定的條件。

    回覆
    0
  • P粉336536706

    P粉3365367062023-09-05 10:07:13

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

    所以試試這個吧

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

    回覆
    0
  • 取消回覆