Показать сообщение отдельно
  #20 (permalink)  
Старый 04.02.2023, 04:48
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 651

Скажу сразу код работает просто не до конца понимаю.

const inputProducts = [
  {
    title: 'Phone case',
    price: 23,
    quantity: 2,
    category: 'Accessories',
  },
  {
    title: 'Android phone',
    price: 150,
    quantity: 1,
    category: 'Phones',
  },
  {
    title: 'Headphones',
    price: 78,
    quantity: 1,
    category: 'Accessories',
  },
  {
    title: 'Sport Watch',
    price: 55,
    quantity: 2,
    category: 'Watches',
  },
]

const quantitiesByCategories = (products) => {

  return products.reduce((qtyByCategories, product) => {

    const {category, quantity} = product

    qtyByCategories[product.category] =  (qtyByCategories[product.category] || 0) + product.quantity

    return qtyByCategories
    
  }, [])
}  

console.log(quantitiesByCategories(inputProducts))


1) Как вот этот параметр product понял что он будет объектом этого массива inputProducts

2) Почему [product.category] решило что она возьмет значение этого свойства category: 'Accessories' и станет ключом нового объекта

3) Как происходит суммирование quantity за счет этой записи (qtyByCategories[product.category] || 0) + product.quantity

Последний раз редактировалось Сергей Ракипов, 04.02.2023 в 05:37.
Ответить с цитированием