умножьте 2 значения из каждого массива объектов, затем добавьте умноженные числа, чтобы получить общее число в Reactjs / Javascript

#javascript #reactjs #ecmascript-6

#javascript #reactjs #ecmascript-6

Вопрос:

Я создаю приложение для электронной коммерции, в котором я хочу получить общую стоимость товаров, заказанных пользователями. У меня есть массив под названием «заказы», где у меня есть все упорядоченные элементы. у каждого элемента есть 2 ключевых вызова payablePrice amp; purchasedQty. Я хочу умножить эти 2 ключа, затем я хочу добавить умноженное число, чтобы получить общее количество. Пожалуйста, дайте мне знать, есть ли лучший способ получить общее количество,

Вот мой массив объектов:

orderarray

Это то, что я пробовал:

       {user.orders.map((order, i) => (
    <tr key={i}>
      <td> {order._id} </td>
      <td> {userName} </td>
      <td>
        {order.items.map((item) => item.payablePrice * item.purchasedQty)}
      </td>
      <td>status</td>
    </tr>
  ))}
 

что не работает.Пожалуйста, помогите мне получить общую стоимость каждого заказа

Результат, который я получаю: введите описание изображения здесь

Комментарии:

1. Ошибка? не могли бы вы предоставить его точно?

2. Извините, на самом деле, когда я использую .reduce((acc, cur)=> acc cur) после .map, я получаю эту ошибку

3. Итак, обновите свой вопрос 🙂

Ответ №1:

Итак, мне просто нужно было правильно использовать .reduce after .map() этот код решил мою проблему

  {user.orders.map((order, i) => (
        <tr key={i}>
          <td> {order._id} </td>
          <td> {userName} </td>
          <td>
            {order.items
              .map((item) => item.payablePrice * item.purchasedQty)
              .reduce((acc, current) => {
               return acc   current;
              }, 0)}
          </td>
          <td>status</td>
        </tr>
      ))}