如何在嵌套数组的JSON数据中使用JavaScript的some方法
如何用JavaScript的some方法判断指定third字段是否存在
原始JSON数据(已修正语法错误)
{ "userpayment": [ { "_id": "63297d5d1ae7697c5130fc8a", "user_id": "632525106df51baf8b582803", "coursepack": [ { "third": "63291808acb84985480536b4" } ] } ] }
需求
判断上述数据中是否存在值为 "63291808acb84985480536b4" 的 third 字段,使用JavaScript的some方法实现。
你编写的代码
userpayment.some( items => items.coursepack.some( its => its.third === "63291808acb84985480536b4" ) ) ? true : false
代码分析与优化
你的思路完全正确,不过可以简化:some方法本身就会返回布尔值,不需要额外的三元表达式? true : false,直接返回some的执行结果即可。
优化后的代码:
const hasTargetThird = userpayment.some(item => item.coursepack.some(course => course.third === "63291808acb84985480536b4" ) );
逻辑说明
- 外层
some遍历userpayment数组中的每一项; - 对每一项的
coursepack数组,再用内层some遍历其中的元素; - 只要找到任意一个元素的
third字段匹配目标值,整个表达式就会立即返回true,无需遍历剩余元素; - 如果遍历完所有元素都没找到匹配值,则返回
false。
内容的提问来源于stack exchange,提问作者today sprint
相关产品推荐
相关产品推荐

