我只是分享了一小段代碼,因爲發生了很多事情,我希望這足以回答我的問題。javascript:使用IF語句設置默認值而不是OR
我有一些現有的JS,其中值是用OR語句確定的,我想我需要將它轉換爲IF語句。如果兩者都存在,最終的輸出結果會給我兩個值,而我只想要「問題」存在「問題」和「名稱」兩個值。
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']
}
但是,我不知道我怎麼可能完成這樣的聲明在上面粘貼的現有代碼中的()
內。名稱變量/值總是存在的,所以沒有違約的風險。問題只是在某些時候定義。我從來都不希望兩者都出現。
這可能超出了我在這裏的查詢範圍,但爲了填寫更多的細節,此代碼最終輸出用於主題和問題的JSON文件。主題只包含名稱值,而問題包含名稱和問題,但我只希望json的問題包含問題值,而不是名稱。我很確定這是所有JS中確定的關鍵部分
「*最終輸出目前給我的這兩個值,如果他們都存在*」 - 不, '||'永遠不會那樣做。一定有其他的東西是錯的。請向我們展示您的實際代碼,以解決問題。 – Bergi
你可以使用一個輔助變量(你有條件分配的),一個輔助函數(你有條件地返回)或者一個三元運算符(作爲一個內聯表達式),但是這兩者的行爲都不同於'||'運營商。 – Bergi
你是不是指「使用'questionData ['question']'當它不是** undefined'」? – Bergi