我正在開發一個應用程序,我堅持使用下面的代碼。使用Map和Select方法遍歷數組在Ruby中一起使用
我有一個鏈接數組,其中包含用戶在窗體中張貼的一些鏈接。 說例如我的數組是bunch1 = ["google.com","http://yahoo.com"]
現在,在我將它們存儲到數據庫之前,我需要確保每個鏈接在開始時都添加了「http://」,因爲我在ActiveRecord中有'驗證:'邏輯目的。
所以我的邏輯是,我將遍歷數組,並檢查數組中的每個鏈接之前是否存在「http://」字符串段。很顯然,我必須在我的數組中的「google.com」之前添加「http://」字符串片段。
所以我寫了這樣的代碼:
bunch2=bunch1.map { |y| y="http://"+y }
但它創建了一個bunch2陣列狀bunch2 = 「http://google.com」,「HTTP:// HTTP://雅虎.com「]
正如您所見,它在」http://yahoo.com「之前添加了一個額外的」http://「。
爲了解決這個問題我修改上面的這樣的代碼:
bunch2 = bunch1.select { |x| x !~ /http/ }.map { |y| y="http://"+y }
但它產生像 bunch2 = ["http://google.com"
]一個數組,因爲與select方法的正則表達式被消除yahoo.com
燦有人請給我解決這個問題。在此先感謝...
我複製了你的代碼並運行它。但它給我一個錯誤說:語法錯誤,意外的'='。所以我把它改成了「=〜」而不是「〜=」,但是這次再次改爲「http:// http://yahoo.com」的同一個數組......再次增加一個「http: //「元素之前。 – Siddharth
該測試在預編輯代碼中被反轉。它是固定的。 –