Фильтрация массива с помощью underscore.js

Я пытаюсь отфильтровать некоторые объекты, чтобы лучше понять JS, и я использую underscore.js

Я пришел из C # фона и привык к LINQ, но подчеркивание не совсем то же самое.

Можете ли вы помочь мне отфильтровать этот массив на основе определенного теста, проблема у меня заключается в свойстве массива в массиве.Where оператор отличается от C #, который я обычно использую для фильтрации элементов.

products = [
       { name: "Sonoma", ingredients: ["artichoke", "sundried tomatoes", "mushrooms"], containsNuts: false },
       { name: "Pizza Primavera", ingredients: ["roma", "sundried tomatoes", "goats cheese", "rosemary"], containsNuts: false },
       { name: "South Of The Border", ingredients: ["black beans", "jalapenos", "mushrooms"], containsNuts: false },
       { name: "Blue Moon", ingredients: ["blue cheese", "garlic", "walnuts"], containsNuts: true },
       { name: "Taste Of Athens", ingredients: ["spinach", "kalamata olives", "sesame seeds"], containsNuts: true }
    ];

it("given I'm allergic to nuts and hate mushrooms, it should find a pizza I can eat (functional)", function () {

      var productsICanEat = [];

      //This works but was hoping I could do the mushroom check as well in the same line
      var noNuts = _(products).filter(function (x) { return !x.containsNuts;});

      var noMushrooms = _(noNuts).reject(function(x){ return !_(x.ingredients).any(function(y){return y === "mushrooms";});});


      console.lo,g(noMushrooms);

      var count = productsICanEat.length;
      expect(productsICanEat.length).toBe(count);
  });

Ответы на вопрос(4)

Ваш ответ на вопрос