【发布时间】:2017-01-10 00:22:24
【问题描述】:
我目前有如下数据:
[{
"id": 1,
"name": "Canada",
"checked": true,
"vacationSpots": [{
"id": 1,
"name": "Toronto",
"checked":false,
"activities": [{
"id": 1,
"checked": false,
"name": "Niagara Falls"
}]
}, {
"id": 2,
"name": "France",
"checked":true,
"activities": [{
"id": 2,
"checked":true,
"name": "Eiffel tower"
}]
}]
}, {
"id": 2,
"name": "US",
"checked": true,
"vacationSpots": [{
"id": 3,
"name": "California",
"checked": true,
"activities": [{
"id": 3,
"name": "Surfing",
"checked":false
}]
}]
}]
我正在从检查设置为 true 的活动中收集活动 ID。
所以结果看起来像这样:
2
虽然我可以得到这个,但我必须通过 3 个级别才能访问活动
for (i = 0; i < country.length; i++){
country = allAreas[i];
....
for (j = 0; j < country.vacationSpots.length; j++){
....
for (k = 0; k < vacationSpots.activities.length; k++){
(搜索国家,然后是vacationSpots,然后是活动。有没有办法在不遍历每个级别的情况下进行过滤?有没有办法用Lodash做到这一点?
【问题讨论】:
-
在不使用嵌套迭代器的情况下没有办法做到这一点。您当前的代码是什么样的?
-
@Phil 我目前遍历的方式是通过三个 for 循环,1 个循环遍历每个国家,另一个循环遍历每个国家/地区的 VacationSpots,最后一个 1 循环遍历活动在每个度假胜地。
-
我用我的一点 for loop sn-p 更新了我的代码
-
如果你想通过一个数组来找东西,你必须通过数组。如果你想通过嵌套数组来查找东西,你必须通过嵌套数组——一种或另一种方式。
-
activities可以包含多个元素吗?
标签: javascript filter nested lodash