【发布时间】:2020-03-01 04:34:49
【问题描述】:
我有一个给定用户的对象。
const user = [{ id: '1', city: 'Paris', cuisine: 'italian', allergic: 'no', budget: '50', hasChildren: 'yes' }]
还有一系列带有餐厅的物品。我想给这位用户找一家最符合他要求的餐厅。
const restaurants: [
{
cuisine: 'mexican',
averageCost: '30',
children: 'no'
},
{
cuisine: 'italian',
averageCost: '30',
children: 'yes'
}
]
所以第二家餐厅更适合用户,所以它应该显示为第一家。每个键都应该有一定的权重,因为例如美食比成本更重要,所以它应该有更大的分数。我怎样才能实现它?在 JavaScript 中是否有任何算法可以做到这一点?
【问题讨论】:
-
您是否只是在寻找最适合的成本/美食?如果是这样,您必须对菜肴进行加权,以便基本上可以将其归一化为成本差异,然后您可以按匹配的整体适用性进行排序(在这种情况下,适用性将在成本和菜肴偏好方面最接近)
-
请展示您的尝试并解释您遇到的问题。这是一个简单的排序算法,但您未能提供排序键:您的评估函数。我们不能为你决定。因素的权重和相互作用仍在您的脑海中,或者等待您从复杂的事物中研究您想要的效果。在您定义之前,我们甚至无法将您置于正确的范式中:约束优化、直线评估或某种深度学习模型。
标签: javascript arrays algorithm sorting filtering