JavaScript 将数组添加到现有对象数组中
P粉556159786
P粉556159786 2023-09-04 11:46:33
[JavaScript讨论组]
<p>我有下面的代码片段</p> <p> <pre class="brush:js;toolbar:false;">const arr = [ { "name": "Attestation Component 1", "values": [ { "component": "Attestation Component 1" }, { "component": "Attestation Component 1" }, { "component": "Attestation Component 1", } ] }, { "name": "Attestation Component 2", "values": [ { "id": "10005884", "url": "https://www.msn.com", "bfaId": "G44.5.3.1N/A", "component": "Attestation Component 2" }, { "id": "10005883", "url": "https://www.hotmail.com", "bfaId": "G44.5.3.2N/A", "component": "Attestation Component 2" } ] }, { "name": "Attestation Component 3", "values": [ { "id": "10005882", "url": "https://www.rediffmail.com", "bfaId": "G44.5.3.3N/A", "component": "Attestation Component 3" } ] } ] const bool = arr.map(group =&gt; group.values.every(val =&gt; val.id)); console.log(bool);</pre> </p> <p>我有三个对象,名称分别为证明组件 1、证明组件 2、证明组件 3。我得到的预期输出为 false、true、true。这是什么原因呢?我想将该属性添加到现有对象数组中,作为 <code>name</code></p> 下方的 <code>isInvalid: true/false</code> <p>预期的 O/P(在每个具有以下键值对的对象中添加属性) <code>isInvalid:真/假</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));
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号