【发布时间】:2019-06-19 03:35:07
【问题描述】:
我已经为那次迭代苦苦挣扎了几天。无论我以何种方式使用这些方法,我都只能映射或过滤“汽车”数组,而无需进一步的算法。我想创建一个对象数组,品牌名称,其中包括驱动程序名称,从品牌对象创建一个数组。
我尝试在我的代码中以不同的方式和不同的位置混合这些方法,但我唯一实现的是一个映射数组,其中包含内部没有数组的品牌。我还浏览了整个堆栈以寻找类似的问题和特殊的解决方案。
var cars = [
{'brand': 'Ford'},
{'brand': 'Seat'},
{'brand': 'Opel'},
{'brand': 'Kia'},
{'brand': 'Mitsubishi'},
{'brand': 'Toyota'}
];
var drivers = [
{'name': 'Mark', 'car': 'Seat'},
{'name': 'John', 'car': 'Ford'},
{'name': 'Michael', 'car': 'Kia'},
{'name': 'Joe', 'car': 'Toyota'}
];
var assosiated = {};
console.log(assosiated);
这就是我尝试做的,但它没有达到我的期望:
assosiated = cars.map(function (carss) {
var driver = drivers.filter(function (dri) {
return carss.brand === dri.car;
});
return carss.brand;
}).reduce(function (prev, curr) {
return prev + '\n' + curr;
});
我希望输出如下所示:
assosiated = {
"Ford": [
{"name": "John"}
],
"Seat": [
{"name": "Mark"}
],
"Opel": [],
"Kia": [
{"name": "Michael"}
],
"Mitsubishi": [],
"Toyota": [
{"name": "Joe"}
]
}
我也想使用上面写的所有方法。知道我该怎么做才能这样排序吗?
【问题讨论】:
-
请发布您尝试使用但失败的 JavaScript,然后我们会修复它——我们不会为您编写整个代码。看看如何发布minimal reproducible example
-
哦,对不起,我得用我的代码编辑一下。
标签: javascript functional-programming