我在寫測驗的提示系統。提示將是答案的變體。爲了使字謎更容易,我保留第一個和最後一個字母相同。如何生成易於保存標點符號的字典?
var _ = require('underscore');
var easy = function(s) {
if (s.length <= 1) {
return s;
}
return s[0] + _.shuffle(s.slice(1, -1)).join("") + s.slice(-1);
};
對於多個單詞的答案,我想分開每個單詞的字謎。我寫道:
var peasy = function(s) {
return s.split(/\W/).map(easy).join(" ");
}
但是,這會在答案中丟失任何標點符號(用空格替換它)。我想將標點符號保留在原來的位置。我怎樣才能做到這一點?
這裏有三個例子來測試:
console.log(peasy("mashed potatoes"));
console.log(peasy("computer-aided design"));
console.log(peasy("sophie's choice"));
My功能peasy
以上失敗第二和第三例子,因爲它失去連字符和撇號。
你'easy'函數可以返回's'如果'(s.length <= 3)'。通過保留第一個和最後一個字符,只有長度大於3的字符串真的被洗牌... – ericbn