对结构变量进行空检查

问题描述 投票:2回答:1

我有下面的代码从一个对象创建三个常量。

const {standing_bid_amt, min_increment, starting_price} = props.auction.auction;

但是如果拍卖是一个空对象,则上述常量之上的问题将是不确定的。为了解决这个问题,我将代码更改为

const {standing_bid_amt, min_increment, starting_price} = props.auction.auction ? props.auction.auction : {standing_bid_amt: null, min_increment:null, starting_price:null};

尽管可以,但是我觉得这不是对常量进行空值检查的最佳方法。请让我知道是否有更好的方法可以使用null检查创建常量。

javascript ecmascript-6
1个回答
3
投票

而不是使用条件运算符,而是与{}交替使用,并将默认值(null)分配给已分解的变量(因此,当=的右侧求值为空对象时,null被放入变量):

const {
  standing_bid_amt = null,
  min_increment = null,
  starting_price = null
} = props.auction.auction || {};

const doSomething = (props) => {
  const {
    standing_bid_amt = null,
    min_increment = null,
    starting_price = null
  } = props.auction.auction || {};
  console.log(min_increment);
};

doSomething({ auction: {auction: null }});
doSomething({ auction: {auction: {
  standing_bid_amt: 50,
  min_increment: 50,
  starting_price: 50
}}});
© www.soinside.com 2019 - 2024. All rights reserved.