我有一個包含名字和日期的二維數組:如何找到元素的索引在二維散
name_date_array = [[John Doe, 8/9/14], [Jane Smith, 9/4/14], [Mary Jane, 6/5/14],
[John Doe, 5/2/14]]
(我重寫這個因爲不清楚),我有兩個變量:patient_name
和collection_date
。我試圖找到包含patient_name
的子數組的索引和小於'collection_date'的日期。以下是我從falsetru有:
patient_name = browser.find_element(:xpath => ".//*[@id='dialog-modal-cancel-hl7-preview']/table/tbody/tr[2]/td[1]").text
collected_date = browser.find_element(:xpath => ".//*[@id='dialog-modal-cancel-hl7-preview']/table/tbody/tr[2]/td[4]").text
mo, da, yr = collected_date.split('/').map(&:to_i)
cd = [yr, mo, da]
name_admit_array.index { |name, date|
m, d, y = date.split('/').map(&:to_i)
dt = [y, m, d]
name == patient_name and (dt <=> cd)<0
}
這個偉大的工程,但原因我重寫這個(因爲它是可怕的前書面除了面子)是,我有一個問題。 collection_date
是爲特定客戶收集實驗室樣本的日期(patient_name
)。每個子陣列都包含患者姓名和他們的入院日期。如果患者不止一次是患者,則患者可以有幾個同名的入場日期不同的入場。
我需要找到包含paitient_name
的子數組的索引,幷包含與collection_date
關聯的入場日期。這意味着索引的子數組需要患者的姓名和入院日期在收集日期之前,但如果在收集日期之前有多個入院日期的入口,也最接近收集日期。我希望這是有道理的。
例如,如果收集日期是9/3/14,我需要返回子數組[John Doe, 8/9/14]
而不是[John Doe, 5/2/14]
的索引,因爲第一個包含與該收集相關的入場日期(實驗室在收集他)。顯然只是要求collection_date
大於入學日期,dt
,是不夠的。
你給了兩個標準的內部「維度,該塊返回
true
它將返回興田第一項的索引「。外部「維度」的標準是什麼? – sawa 2014-09-20 03:47:48通過在「我想查找條目索引」中使用複數形式,您意味着您正在查找可能多於一個條目(子數組)。但是你寫了你想讓return成爲單個對象'0'。當有多個比賽時會發生什麼? – sawa 2014-09-20 03:52:05
您寫過條件以'patient_name'和'admission_date'命名。發生了什麼事,爲什麼使用'== John Doe&> 8/9/14'? – sawa 2014-09-20 04:01:10