簡體   English   中英

我嘗試使用 fisher-yates shuffle 字符串,但沒有奏效

[英]I tried using a fisher-yates shuffle for strings, but it didn't work

我嘗試使用fisher-yates shuffle 對字符串進行改組,但是盡管它正確獲取了索引和值,但它不會對字符串進行改組,有什么問題嗎?

 globalVar = 'I am GLOBAL' function scrambler(anyString) { let placeHolder = anyString for (let i = placeHolder.length - 1; i >= 0; i--) { let swapIndex = Math.floor(Math.random() * (i + 1)) let chartoSwap = placeHolder[swapIndex] let currentChar = placeHolder[i] placeHolder[i] = chartoSwap placeHolder[swapIndex] = currentChar } return placeHolder } let scrambled = scrambler(globalVar) console.log(scrambled)

字符串是不可變的。 placeHolder更改為數組

 globalVar = 'I am GLOBAL' function scrambler(anyString) { let placeHolder = anyString.split("") for (let i = placeHolder.length - 1; i >= 0; i--) { let swapIndex = Math.floor(Math.random() * (i + 1)) let chartoSwap = placeHolder[swapIndex] let currentChar = placeHolder[i] placeHolder[i] = chartoSwap placeHolder[swapIndex] = currentChar } return placeHolder.join("") } let scrambled = scrambler(globalVar) console.log(scrambled)

字符串是不可變的,你不能改變它們。 閱讀本文以獲取更多信息: https://stackoverflow.com/a/1431113/1128441

String.prototype.replaceAt=function(index, replacement) {
  return this.substr(0, index) + replacement+ this.substr(index + replacement.length);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM