JSFiddle - React, Tailwind, and code Playground

by Thunder Hemlock

JavaScript

var arr = [
  { id: 15 },
  { id: -1 },
  { id: 0 },
  { id: 3 },
  { id: 12.2 },
  { },
  { id: null },
  { id: NaN },
  { id: 'undefined' }
];
var bikeSpecs = [
  { make: "Aprilia", model: "Aprilia Model 1" },
    { make: "Aprilia", model: "Aprilia Model 2" },
  { make: "Moto Guzzi", model: "Moto Guzzi Model 1" },
  { make: "Moto Guzzi", model: "Moto Guzzi Model 2" },
  { make: "zero", model: "zero Model 1" },
  { make: "zero", model: "zero Model 2" },
  { },
  { id: null },
  { id: NaN },
  { id: 'undefined' }
];
var selectedModels = [];
var selectedMakes = ["Aprilia", "Moto Guzzi"];

var invalidEntries = 0;

function isMake(obj) {
  return obj;
}

function filterByMake(item) {
  if (isMake(item.make == "Aprilia")) {
     selectedMakes.push(item);
     console.log('selectedMakes', selectedMakes); 
    return true;
  } 
  invalidEntries++;
  return false; 
}

var bikeSpecsByMake = bikeSpecs.filter(filterByMake);

function isModel(obj) {
  return obj;
}

function filterByModel(item) {
  if (isModel(item.model == "Aprilia Model 2")) {
     selectedModels.push(item);
     console.log('selectedModels', selectedModels); 
    return true;
  } 
  invalidEntries++;
  return false; 
}

var bikeSpecsByModel = selectedMakes.filter(filterByModel);


console.log('bikeSpecsByMake\n', bikeSpecsByMake); 
// Filtered Array
// [{ id: 15 }, { id: -1 }, { id: 0 }, { id: 3 }, { id: 12.2 }]

console.log('bikeSpecsByModel\n', bikeSpecsByModel); 


console.log('Number of Invalid Entries = ', invalidEntries); 
// Number of Invalid Entries = 4