Javascript 在每种类型中选择一个价值最高且不超过预算的项目
给定以下项目列表、预算B和项目类型列表(T1、T2、T3…TN),从每种类型中选择一个在不超过预算的情况下提供最大价值(最昂贵)的项目Javascript 在每种类型中选择一个价值最高且不超过预算的项目,javascript,arrays,json,object,Javascript,Arrays,Json,Object,给定以下项目列表、预算B和项目类型列表(T1、T2、T3…TN),从每种类型中选择一个在不超过预算的情况下提供最大价值(最昂贵)的项目 [ { "id": "1", "types": "T1", "price": 1000, }, { "id": "2", "types": "T2", "price": 109292, }, { "id": "3", "types": "T3", "price": 722
[
{
"id": "1",
"types": "T1",
"price": 1000,
},
{
"id": "2",
"types": "T2",
"price": 109292,
},
{
"id": "3",
"types": "T3",
"price": 7228,
},
{
"id": "4",
"types": "T4",
"price": 1000,
},
]
探索背包问题,不确定这是否是NP完全问题。只需使用
过滤器
查找所有未超出预算的项目,然后按降序排序
并取第一个元素:
const数组=[{
“id”:“1”,
“类型”:“T1”,
“价格”:1000美元,
},
{
“id”:“2”,
“类型”:“T2”,
“价格”:109292,
},
{
“id”:“3”,
“类型”:“T3”,
“价格”:7228,
},
{
“id”:“4”,
“类型”:“T4”,
“价格”:1000美元,
},
];
施工预算=9000;
var budgetMatch=array.filter(({price})=>price b-a);
var最高价格=预算匹配[0];
控制台日志(最高价格)代码>你的问题是什么?那么,你的数组可以有多个相同类型的项目,它们的id和价格不同,并且你需要一个与给定类型列表相关的项目列表,这些类型的项目的价格总和更接近预算限制?这可以帮助你降低成本:是的。从数据集列表中选择价格总和更接近预算限制的项目。项目必须是唯一的类型。您将获得一个要拾取的类型列表,该列表是数据集中类型的子集list@MatthewHerbst问题是,解决这个问题的推荐算法是什么。请记住:-预算已在所有项目类型中共享-您希望从每种类型中选择价格最高的项目,并且不超过您的预算这很好!这可以帮助我从列表中选择不超过预算的价格最高的项目和T型的子列表。然而,它不认为我们想从每种类型中选择一个项目,以便从所有挑选的类型中的总项目不超过我们的预算。同样:给定类型T1、T2、T2和预算9000,选择类型T1、T2、T2中的一个项目,使所选项目的价格总和不超过预算