Javascript 如何通过在对象的数组中搜索字符串来查找值

Javascript 如何通过在对象的数组中搜索字符串来查找值,javascript,arrays,Javascript,Arrays,我的目标如下: data = [ { type: "fruit", basket: ["apple", "pear", "orange"] }, { type: "vegetable", basket: ["carrot", "potato"] } ]; 我希望搜索“土豆”的数据,并返回“蔬菜”。我希望使用filter或map,但我正在努力解决语法问题。请使用香草javascript。使用函数迭代每个对象,使用或迭代每个篮子,并检查是否有名为土豆

我的目标如下:

data = [
  {
    type: "fruit",
    basket: ["apple", "pear", "orange"]
  },
  {
    type: "vegetable",
    basket: ["carrot", "potato"]
  }
];
我希望搜索“土豆”的数据,并返回“蔬菜”。我希望使用filter或map,但我正在努力解决语法问题。请使用香草javascript。

使用函数迭代每个对象,使用或迭代每个篮子,并检查是否有名为土豆的项目

const数据=[
{
类型:“水果”,
篮子:[“苹果”、“梨”、“橘子”]
},
{
类型:“蔬菜”,
篮子:[“胡萝卜”、“土豆”]
}
];
constitemwithsome=data.find(item=>item.basket.some(i=>i==='potato'));
console.log(itemWithSome.type);
const itemWithIncludes=data.find(item=>item.basket.includes('potato');
console.log(itemWithIncludes.type)可以与一起使用

var数据=[{type:“水果”,篮子:[“苹果”,“梨”,“橘子”]},{type:“蔬菜”,篮子:[“胡萝卜”,“土豆”]},
find=‘马铃薯’;
log(data.find(o=>o.basket.includes(find)).type)解决方案是

var res = data.map(
    x => x.basket.indexOf("potato") === -1 ? undefined : x.type
).filter(x => x !== undefined);
res
将是所有匹配的
类型的列表(如果多次包含相同的值,则可能有多个)。如果您确定值是唯一的,则可以使用
res[0]
,在这种情况下,您将获得
类型
值或
未定义的