我是一个脚本初学者,我遇到了一个问题.我有一个javascript的功能,可以对字符串中的字符进行改组,使单词的长度和空格保持与原始句子中的一样.
function shuffleArray(array) {
for (let i = array.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[array[i], array[j]] = [array[j], array[i]];
}
return array;
}
String.prototype.shuffle = function () {
// pass to shuffleArray an array of all non-whitespace characters:
const randomChars = shuffleArray([...this.replace(/\s+/g, '')]);
let index = 0;
// `\S` matches any non-whitespace character:
return this.replace(/\S/g, () => randomChars[index++]);
}
console.log(
` keys 在垫子下面`
.shuffle()
);
我想要添加的是向函数添加一个定义了字母的变量,该变量应该在洗牌过程中跳过.现在我们有了,即:
- 原始字符串:
keys 在垫子下面
- 现在,混洗后的字符串如下所示:
ATD meey eke nTshr Hau ERT
- 我想要的是: 我想定义字符,例如:[hr],这些字母应该保持在它们的位置上,而不是被Shuffle函数处理:
最终结果:
hd meey ere nTshr ahu ekt