Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在每种类型中选择一个价值最高且不超过预算的项目_Javascript_Arrays_Json_Object - Fatal编程技术网

Javascript 在每种类型中选择一个价值最高且不超过预算的项目

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

给定以下项目列表、预算B和项目类型列表(T1、T2、T3…TN),从每种类型中选择一个在不超过预算的情况下提供最大价值(最昂贵)的项目

[
  {
    "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中的一个项目,使所选项目的价格总和不超过预算