Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.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过滤器基于关联数组中的字符串在对象中查找id_Javascript_Arrays - Fatal编程技术网

Javascript过滤器基于关联数组中的字符串在对象中查找id

Javascript过滤器基于关联数组中的字符串在对象中查找id,javascript,arrays,Javascript,Arrays,我正在尝试根据所选数组中食物的名称获取foodId。我有一个过滤器来查找食物,然后有一个映射来获取ID,但是过滤器似乎跳过了所选数组中的第一项。请参阅代码片段: var响应={ “状态”:“成功”, “数据”:{ “食品计数”:20, “食物”:[ { “foodId”:“574”, “食物”:“炸薯条” }, { “foodId”:“722”, “食物”:“汉堡包” }, { “foodId”:“1736”, “食品”:“Pad见Ew” }, { “foodId”:“1737”, “食物”:

我正在尝试根据所选数组中食物的名称获取foodId。我有一个过滤器来查找食物,然后有一个映射来获取ID,但是过滤器似乎跳过了所选数组中的第一项。请参阅代码片段:

var响应={
“状态”:“成功”,
“数据”:{
“食品计数”:20,
“食物”:[
{
“foodId”:“574”,
“食物”:“炸薯条”
},
{
“foodId”:“722”,
“食物”:“汉堡包”
},
{
“foodId”:“1736”,
“食品”:“Pad见Ew”
},
{
“foodId”:“1737”,
“食物”:“意大利面”
},
{
“foodId”:“1739”,
“食物”:“泡面”
},
{
“foodId”:“1740”,
“食物”:“玉米饼”
},
{
“foodId”:“1741”,
“食物”:“法拉费”
},
{
“foodId”:“1742年”,
“食物”:“玉米煎饼”
},
{
“foodId”:“1743年”,
“食物”:“热狗”
}
]
}
}
const selected=[“汉堡包”、“热狗”];
//应该返回[7221743]
const foodList=response.data.foodIds
const foundFoods=foodList.filter(isInArray)
const foundIds=foundFoods.map(x=>parseInt(x.foodId))
console.log('foundIds',foundIds);
功能isInArray(项目){
返回所选。indexOf(item.food)>0

}
isInArray
应该是这样的:

function isInArray(item) {
  return selected.indexOf(item.food) >= 0
}

数组是从零开始的,而不是从1开始的。将此设置为选中。indexOf(item.food)>0设置为选中。indexOf(item.food)>=0