【发布时间】:2020-11-05 01:44:09
【问题描述】:
我有 JSON 数据,其结构如下:
const SubSpecs= [
{
"_id": "1",
"nom": "installation",
"blocks": [
{
"idBlock": "1",
"ArtisanOffres": [
{
"idArtisan": "1",
"price": 12
}
]
},
{
"idBlock": "2",
"ArtisanOffres": [
{
"idArtisan": "1",
"price": 14
}
]
}
]
},
{
"_id": "2",
"nom": "tech",
"blocks": [
{
"idBlock": "1",
"ArtisanOffres": [
{
"idArtisan": "1",
"price": 12
}
]
},
{
"idBlock": "2",
"ArtisanOffres": [
{
"idArtisan": "1",
"price": 14
},
{
"idArtisan": "2",
"price": 50
}
]
}
]
}
],
}
这是我想通过其 id 过滤的工匠数组:
artisans= [
{
"_id": "1",
"username": "test1"
},
{
"_id": "2",
"username": "test2"
}
]
现在我想提取所有具有相同工匠 id 的价格(按 id 提取)并按此 id 分组!!
我刚开始一个简单的功能,但我没有找到完成它的方法! 谁能帮忙!!
我无法理解如何过滤此类数据?下面的代码不起作用我找不到任何此类过滤的示例。
这是我的功能:
const total = data
.map((fb) =>
fb.blocks
.map((b) =>
b.ArtisanOffres.map((ao)=> ao.price)
.join(",")
.includes("1")
)
.join(",")
)
.join(",")
.split(",");
我是 javascript 新手,遇到了这个算法问题,
【问题讨论】:
-
您不能在 JavaScript 中映射
{}。请修改您的data.map示例。 -
请同时添加想要的结果。
-
@Enijar 我已经修改了我的代码
-
username来自哪里? -
但是
includes不会帮助您按 id 分组,请尝试使用reduce或在您的地图函数中使用自定义累加器变量。啊啊,函数式编程的趋势,你对年轻人做了什么?带有结果变量的基本循环会如此简单!
标签: javascript node.js arrays json reactjs