搜索

首页  >  问答  >  正文

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粉556159786456 天前460

全部回复(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
  • 取消回复