【发布时间】:2019-08-22 01:07:45
【问题描述】:
我有一个用对象填充的食谱数组。一个对象看起来像这样
var recipes = [
{
name: 'All-Purpose Rub for Meat',
ingredients: [
{
name: 'white sugar',
quantity: {
number: 4,
unit: 'tablespoon'
},
},
{
name: 'salt',
quantity: {
number: 4,
unit: 'tablespoon'
}
},
{
name: 'paprika',
quantity: {
number: 1,
unit: 'tablespoon'
}
},
{
name: 'mustard powder',
quantity: {
number: 2,
unit: 'tablespoon'
}
},
{
name: 'ground black pepper',
quantity: {
number: .5,
unit: 'teaspoon'
}
},
{
name: 'dried oregano',
quantity: {
number: 1,
unit: 'pinch'
}
},
{
name: 'dried thyme',
quantity: {
number: 1,
unit: 'pinch'
}
},
],
servingSize: {
quantity: 12,
unit: 'servings'
},
// usedFor: [ribs, chicken, pork, fish, beef]
},
{
name: 'Rosemary Garlic Rub',
ingredients: [{
name: 'ground black pepper',
quantity: {number: 1, unit: 'tablespoon'}},
{
name: 'kosher salt',
quantity: {number: 1, unit: 'tablespoon'}},
{
name: 'chopped fresh rosemary',
quantity: {number: 3, unit: 'tablespoon'}},
{
name: 'dried rosemary',
quantity: {number: 1, unit: 'tablespoon'}},
{
name: 'diced garlic',
quantity: {number: 8, unit: 'cloves'}},
{
name: 'olive oil',
quantity: {number: .333, unit: 'cup'}}
],
servingSize: {quantity: 4, unit: 'servings'},
// usedFor: [chicken, pork]
},
]
我想做的是根据输入的香料过滤食谱数组,所以它会是这样的
filterRecipes({name: '黑胡椒粉'});
我试过了
function filterRecipes(spice) {
let filteredarray = recipes.filter((recipe) => {
recipe.ingredients.includes(spice.name);
});
return filteredarray;
}
console.log(filterRecipes({name: 'kosher salt'}))
filterRecipes 函数将返回一个包含“黑胡椒粉”成分的所有食谱的数组。
任何帮助将不胜感激。
看起来我需要类似于他的东西,但我不能使用一些,因为我需要全部我不知道为什么它将以下标记为正确答案,但这并没有给我全部有成分的物品
Filtering array of objects by searching nested object properties
它应该返回一个食谱数组,其中仅包含具有作为参数放入的成分的对象
【问题讨论】:
-
你的 recipes.filter 函数没有返回任何东西,我认为一旦你修复它应该可以工作。
-
@GeorgeJempty 我在我的问题中包含了我无法使用的那个
标签: javascript arrays filtering javascript-objects