簡體   English   中英

如何過濾掉數組中的空值?

[英]How do I filter out empty values in an Array?

我正在發布到 API,如果在pricing表單字段中沒有輸入任何值,我想發送一個空數組。

我曾嘗試使用 filter 方法,但是當我發出 post 請求時,它會發送一個包含空對象的數組,即[{}]

我的狀態是:

title: "",
ticketing: "",                      // is equal to 0 (paid) or 1 (free)
pricing: [
           {
            price: "",
            currency: "",
            ticketLabel: ""
           }
         ],

當 ticketing 等於 1 時,不會輸入pricecurrencyticketLabel

這是我的提交功能:

handleSubmit = async (event) => {
    event.preventDefault();

    const info = {
      title: this.state.title,
      ticketing: this.state.ticketing,
      price: [
               {
                 currency: this.state.currency,
                 price: this.state.price,
                 label: this.state.ticketLabel
               }
             ].filter(token => Object.keys(token).length != 0)
      }

我把它發布為

axios
  .post(`https://www.diaspora100.com/api/v1/public/events/`, {
    info,
})

目前,該帖子為:

price: [{}]
  0: {}

我希望它發布為:

price: []

謝謝你的幫助!

當ticketing等於1時,不輸入價格、貨幣和票證標簽的值

也許你想要這樣的東西

const info = {
      title: this.state.title,
      ticketing: this.state.ticketing,
      price: this.state.ticketing !== 1 ? [
               {
                 currency: this.state.currency,
                 price: this.state.price,
                 label: this.state.ticketLabel
               }
      ] : []
}

在價格的過濾器部分你可以試試這個

<price-array>.filter(token => token.price.length > 0)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM