Заданный массив, создайте функцию и верните число

#javascript #arrays

#javascript #массивы

Вопрос:

Мне нужно написать функцию priceLookup(items, ItemName), а затем вернуть цену за вызываемый элемент. Если нет элементов, которые соответствуют переданному имени, функция должна вернуть undefined, и если в массиве есть более одного элемента, который соответствует имени, функция должна вернуть цену первого, который соответствует.

Пример вывода:

 priceLookup(items, "Effective Programming Habits") //=> 13.99
  

Заданный массив:

 let items = [
  {
    itemName: "Effective Programming Habits",
    type: "book",
    price: 13.99
  },
  {
    itemName: "Creation 3005",
    type: "computer",
    price: 299.99
  },
  {
    itemName: "Finding Your Center",
    type: "book",
    price: 15.00
  }
]
  

Что у меня есть до сих пор:

 function priceLookup(items, itemName) {
  if (items.length === 0) return undefined;
  
  for (let i = 0; i < items.length; i  ) {
    let result = items.filter(price => items.price);
    return resu<
  }
} 
  

Я думал, что смогу использовать метод filter() для возврата цены при вызове каждого имени, однако это возвращает пустой массив. (Я уверен, что я сделал это неправильно)

Ответ №1:

Поскольку вы хотите найти первое совпадение, если оно существует, вы должны использовать .find , not .filter — и вам не нужен for цикл в дополнение к методу array . Вы также должны возвращать цену найденного объекта, а не всего объекта.

 function priceLookup(items, itemName) {
  const found = items.find(item => item.itemName === itemName);
  if (found) return found.price;
}
  

 let items = [
  {
    itemName: "Effective Programming Habits",
    type: "book",
    price: 13.99
  },
  {
    itemName: "Creation 3005",
    type: "computer",
    price: 299.99
  },
  {
    itemName: "Finding Your Center",
    type: "book",
    price: 15.00
  }
]

function priceLookup(items, itemName) {
  const found = items.find(item => item.itemName === itemName);
  if (found) return found.price;
}
console.log(priceLookup(items, "Effective Programming Habits"));