我有一個方法來檢查一個單詞是否包含某個字母。字符串#include?方法應該返回true如果字符串對象包含任何位置的字母。但是,如果字母(char_clicked)和單詞第一個字母(final_word)中的字母匹配,我的方法只返回true。例如,如果final_word參數是西班牙語,如果「S」是char_clicked,則該方法僅返回true,如果char_clicked是「_pain」中的任何一個,它將返回falseString#include?只檢查第一個位置
您能緩解我的痛苦並告訴我我在做什麼錯?
def correct_guess?(char_clicked, final_word)
puts char_clicked, final_word #p, Spain
puts final_word.is_a?(String) #true
puts "checking if string"
puts final_word.include?(char_clicked) #false
final_word.include?(char_clicked)
end
更新
我得到同樣的結果,即使我把字符串轉換成一個數組,並檢查信
puts final_word.split("").include?(char_clicked)
不過,如果我使用包括在控制檯該應用程序,它工作正常
>> s = "brazil"
=> "brazil"
>> s.include?("z")
=> true
看到,因爲這個問題證實,包括第一反應呢?應該按照上面顯示的方式工作,我提供的更多信息可能有助於解釋爲什麼它不能像預期的那樣工作
在發送到correct_guess之前,final_word正在被拉出會話?檢查方法。所述char_clicked被拉出參數的
Ajax請求發送char_clicked到上述檢查方法
$.ajax({
url: "/check",
type: "POST",
data: {char_clicked: this.get("char_clicked")},
success: function(response) {
console.log(response);
var json = $.parseJSON(response);
if (response.incorrect_guesses >= _this.get("threshold")) _this.set({lost: true});
if (response.win) _this.set({win: true});
_this.trigger("guessCheckedEvent", response);
}
})
},
你能同時打印'char_clicked' variabale? – tdgs
嘗試'char_clicked.strip'(去除換行符和其他意外的前導和尾隨空白)。 – steenslag
@steenslag它不能解決問題 – BrainLikeADullPencil