JavaScript 将数组添加到现有对象数组中
P粉556159786
P粉556159786 2023-09-04 11:46:33
0
2
457
<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));
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板