首页 > 解决方案 > 从数组中获取价格并传递给贵重物品以供将来计算 React

问题描述

我从 API 获得了一个价目表数组。我想分别获取 3 个属性以供将来计算。是否可以分别获取以下值的值?

以下是我的数据数组

  "data": {
    "ticketPrices": {
      "advancedCommission": 60,
      "priceList": [
        {
          "id": 537,
          "seatType": "Box Seats - Ground Floor",
          "nonReserved": 0,
          "adultPrice": 800,
          "adultCommission": 0,
          "childPrice": 0,
          "childCommission": 0,
          "servicePrice": 0
        },
        {
          "id": 536,
          "seatType": "ODC",
          "nonReserved": 0,
          "adultPrice": 350,
          "adultCommission": 0,
          "childPrice": 280,
          "childCommission": 0,
          "servicePrice": 0
        }
      ]
    }
  },

以下是我的代码

componentDidMount() {
    
    const requestOptions = {
        method: 'GET',
        headers: { 'Content-Type': 'application/json', 'client_token': 'ebd86470-7e90-4ece-9e89-1b6d4d2cbb61' }
      };
      fetch(`http://sandbox-api.com/v1/seat/prices?venue_id=90&movie_id=3232&showtime_id=2130&movie_date=2021-08-02`, requestOptions)
          .then(response => response.json())
          .then((seatPrice) => {
            console.log(seatPrice.data.ticketPrices.priceList)
            this.setState({ 
                seatPrice: seatPrice.data.ticketPrices.priceList,
                dataLoaded: true,
             })
          }).catch(console.log);

  }

标签: reactjsapi

解决方案


是的,您可以通过使用过滤器来实现这一点

const filteredODCData = seatPrice.data.ticketPrices.priceList.filter(type => type.seatType.includes("ODC"));
const adultPrice = filteredODCData[0].adultPrice;
const childPrice= filteredODCData[0].childPrice;


const filteredBoxData = seatPrice.data.ticketPrices.priceList.filter(type => type.seatType.includes("Box Seats - Ground Floor"));
const adultBoxPrice = filteredBoxData[0].adultPrice;

const advanceCommision = seatPrice.data.ticketPrices.advancedCommission;

推荐阅读