Использовать объект вместо массива:
const animalLegsByAnimalName = {
human: 2,
horse: 4,
fish: 0
};
function findLegs(animalToFind) {
return animalLegsByAnimalName[animalToFind];
}
console.log(findLegs("human"));
Если вы хотите сохранить , используя массив, а также использовать объект для быстрого и простого поиска, просто reduce
начальный массив вСначала над объектом:
const animalsLegs = [{animal: "human", legs: 2},
{animal: "horse", legs: 4},
{animal: "fish", legs: 0}];
const animalLegsByAnimalName = animalsLegs.reduce((a, { animal, legs }) => {
a[animal] = legs;
return a;
}, {});
function findLegs(animalToFind) {
return animalLegsByAnimalName[animalToFind];
}
console.log(findLegs("human"));
Если объект в массиве более сложный, чем этот, и вы (например) хотите получить доступ к дополнительным свойствам, значения объекта могут быть объектом вмассив, а не просто значение свойства leg
:
const animalsLegs = [{animal: "human", legs: 2},
{animal: "horse", legs: 4},
{animal: "fish", legs: 0}];
const animalLegsByAnimalName = animalsLegs.reduce((a, animalObj) => {
a[animalObj.animal] = animalObj;
return a;
}, {});
function findLegs(animalToFind) {
const foundAnimal = animalLegsByAnimalName[animalToFind];
if (!foundAnimal) {
return 'No animal found with that name!';
}
return foundAnimal.legs;
}
console.log(findLegs("human"));