【问题标题】:assign an object value conditionally?有条件地分配对象值?
【发布时间】:2019-12-23 04:56:21
【问题描述】:

在 Javascript (jsx for react native) 中有没有一种方法可以有条件地分配对象值?像这样的

startDate = 5
var daysgo = 30



//it has to be an obj
startDate={(startDate != null) ? startDate : daysgo} 

console.log(startDate) // it should either print 5 or 30 if startDate is null 

【问题讨论】:

  • 是的,有。但是您的代码到处都是。为简化起见,请查看以下代码: const a = 'a';常量 b = 'b';常量 x = {y: a === 'a' ?一:乙};控制台.log(x.y);如果将 a 更改为 a 以外的值,它将打印 'b'。如果你想要一个对象,然后执行 console.log(x),它会根据 a 打印 {y:'a'} 或 {y:'b'}

标签: javascript react-native jsx


【解决方案1】:

你可以这样做

let startDate = 5
let daysgo = 30

//it has to be an obj
startDate=(startDate != null) ? {startDate: startDate} : {startDate: daysgo}

console.log(startDate)

【讨论】:

    【解决方案2】:

    js中有很多方法可以有条件地为对象赋值

    但我认为这对你来说是个好方法:

    const targetValue = {key: candidateValue || defaultValue }
    

    这个 LOC 的意思。如果密钥首先得到candidateValue,。 Ff 是falsy,然后得到defaultValue

    注意:更多关于Falsy values in JS

    【讨论】:

      猜你喜欢
      • 2011-05-18
      • 2018-10-26
      • 1970-01-01
      • 2021-06-11
      • 2019-12-09
      • 1970-01-01
      • 2021-02-05
      • 1970-01-01
      • 2023-04-01
      相关资源
      最近更新 更多