javascript: 使用 IF 语句而不是 OR 设置默认值

javascript: setting default value with IF statement instead of OR

我只分享了一小部分代码,因为发生了太多事情,我希望这足以回答我的问题。

我有一些现有的 JS,其中值是用 OR 语句确定的,我想我需要将其转换为 IF 语句。最终输出当前为我提供了两个值,如果它们都存在的话,我只想要 "question" 其中 "question" 和 "name" 值都存在。

var question = new fq.Question(questionData.answerId, topicId,
        questionData['question'] || questionData['name'],
        questionData['text']);

我不想使用 OR 运算符 (answerData['question'] || answerData['name']),而是想执行类似于以下操作的操作:

if (questionData['question'] is undefined) {
  use questionData['question'];
} else { 
  use instead questionData['name'] 
}

但是,我不知道如何在上面粘贴的现有代码中的 () 中完成这样的语句。名称 variable/value 始终存在,因此默认使用该名称没有风险。问题仅在某些时候被定义。而且我永远不希望两者都出现。

这可能超出了我在这里查询的范围,但为了更详细地填写一点,这段代码最终会输出 JSON 个主题和问题文件。主题只有名称值,问题有名称和问题,但我只希望问题 json 包含问题值,而不是名称。我很确定这是所有 JS 中确定

的关键部分

创建一个函数并从中获取值。

需要记住函数作用域:

示例代码段:

var that = this;
var question = new fq.Question(questionData.answerId, topicId,
  that.getValue(),
  questionData['text']);

function getValue() {
  if (questionData['question']) { //null and undefined both are false
    return questionData['question']
  } else {
    return questionData['name']
  }
}