Javascript 如何过滤数组中的空值?

Javascript 如何过滤数组中的空值?,javascript,arrays,json,reactjs,post,Javascript,Arrays,Json,Reactjs,Post,我正在发布到API,如果在定价表单字段中没有输入值,我想发送一个空数组 我尝试过使用filter方法,但当我发出post请求时,它会发送一个带有空对象的数组,即[{}] 我的国家是: title: "", ticketing: "", // is equal to 0 (paid) or 1 (free) pricing: [ { price: "", currency: "",

我正在发布到API,如果在
定价
表单字段中没有输入值,我想发送一个空数组

我尝试过使用filter方法,但当我发出post请求时,它会发送一个带有空对象的数组,即
[{}]

我的国家是:

title: "",
ticketing: "",                      // is equal to 0 (paid) or 1 (free)
pricing: [
           {
            price: "",
            currency: "",
            ticketLabel: ""
           }
         ],
当票务等于1时,
价格
货币
票务标签
将不输入任何值

这是我的提交功能:

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: []
谢谢你的帮助

当票务等于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
               }
      ] : []
}

在价格的过滤部分,你可以试试这个

.filter(令牌=>token.price.length>0)

过滤器(令牌=>Object.keys(令牌).value!=0)
Object.keys返回一个数组,它没有名为
value
对象的属性。keys(令牌)
是一个数组,而
对象。keys(令牌)。value
将始终是
未定义的
对不起,我指的是长度,我已经更新了我的问题
当票务等于1时,不会输入价格、货币和票号标签的值,因此键仍然存在,因此
对象。键(toke)。长度将始终大于
0
长度将始终为3,因为对象中有3个键,无论它们是否为空。你的过滤器是错误的,但你的整个对象没有多大意义。。。也许你应该更新你的问题,提供更多关于你试图表达/实现什么的信息……因为票证是布尔值,所以你可以把它作为
this.state.ticketing&&object | |[]
总之你的答案是正确的+1