2017-07-27 74 views
0

我運行的是以下幾點:如何使用條件輸出對象?

if (doSelect('Location').length > 0 && doSelect('Date').length > 0 || doSelect('State').length > 0 && doSelect('Date').length > 0) { 
    var dateText = doSelect("Date").siblings('td').text().split(/\s+/g); 
    console.log(dateText); 
    $wikiDOM.find('.nourlexpansion').remove(); 
    $wikiDOM.find("#coordinates").parent().remove(); 
    $('#results').append('<li>' + curTitle + "<br>" + doSelect("Location").siblings('td').text() + '<br>' + 
    dateText[0] + "&nbsp; " + dateText[1].replace(/,/g , '&nbsp; ') + "&nbsp; " + dateText[2].replace(/;/g , '&nbsp; ') + "&nbsp;" + dateText[3].replace(/,/g , '&nbsp; ') + "&nbsp; " + dateText[4] + "&nbsp; " + dateText[5] + "&nbsp; " + '</li>'); 
} 

這一行定義可能的結果:

var dateText = doSelect("Date").siblings('td').text().split(/\s+/g); 

控制檯能給:

["19", "May", "1945", "–", "22", "August", "1945"] 

所以打印這些日期我做的:

dateText[0] + "&nbsp; " + dateText[1].replace(/,/g , '&nbsp; ') + "&nbsp; " + dateText[2].replace(/;/g , '&nbsp; ') + "&nbsp;" + dateText[3].replace(/,/g , '&nbsp; ') + "&nbsp; " + dateText[4] + "&nbsp; " + dateText[5] + "&nbsp; 

其中給出:

19 1945年5月 - 8月22日

但有時候,我不知道所有這些日期,以便dateText[3]可能不存在一樣多,因爲它可能存在dateText[9]

不能簡單地認爲,我用.replace(/,/g , '&nbsp; ').replace(/,/g , '&nbsp; ')因爲有時日期出來是所有堆在一起像19,May,1945,我還需要刪除dashcommasemicolumn

基本上我試圖以一致的方式來完成它,並且如果某些[N].replace不需要且不存在,則不會在控制檯中給出錯誤。

這就是我想實現:1945年

1945年8月22日

有時我甚至去月份和日期相反像August, 22, 1945的。

我不知道如何解決這個問題。

+0

'時刻(日期).format( 「DDMMMMYYYY」) - > 22 1945'月)檢查出[momentJS(https://momentjs.com) –

+0

意志時刻認識' 1945年5月19日至8月22日?或1945年5月19日至8月22日? –

回答

1

如果你嘗試這樣的事情怎麼辦?

var dateText = ["19", "May", "1945", "–", "22", "August", "1945"]; 

var d = ''; 

for(var i = 0; i < dateText.length; i++) { 
    d += dateText[i] + ' '; 
} 

console.log(d); 

控制檯輸出:19 May 1945 – 22 August 1945

要擺脫「 - 」和/或插入一個換行符,你可以很容易地修改循環來處理這個問題。這樣可以保持代碼清潔/簡單,並且允許輕鬆更改,這將會影響將來所有此類對象。

小提琴:https://jsfiddle.net/n2s7nwju/1/

+0

去測試它,但它看起來非常有前途,正是我所需要的 –

相關問題