JSFiddle - React, Tailwind, and code Playground
HTML
<ul class="output"></ul>
JavaScript
const animals = [{ species: 'Pets', list: ['Dog', 'Cat', 'Rabbit', 'Gerbil', 'Turtle', 'Canary'] }, { species: 'Wild', list: ['Bear', 'Lion', 'Deer', 'Tiger', 'Cougar', 'Elk', 'Beaver', 'Elephant', 'Rhino' ] }, { species: 'Marine', list: ['Shark', 'Salmon', 'Squid', 'Octopus', 'Jellyfish'] }];
const searchQuery = 'Shark';
function fishForSharks(animal) {
return animal.list.includes(searchQuery);
}
function getKeyPositionFromValue(obj) {
return Object.keys(obj.list).find(key => obj.list[key] === searchQuery);
}
function output(obj) {
const output = document.querySelector('.output');
output.innerHTML += `
<li>
The <strong>${obj.species}</strong> species
contains a ${searchQuery} at position:
${getKeyPositionFromValue(obj)}
</li>`;
}
animals.filter(fishForSharks).map(output);