我正在编写一个命令,可以用另一个元音替换一个元音。以下是我到目前为止所做的:
function trouverEtRemplacerChar(truc, liste, proba) {
let indexCorrespondances = []
if (Math.random() <= proba) {
for (let x = 0 ; x < truc.length; x++) {
if (liste.indexOf(truc[x].toLowerCase()) > -1) {
indexCorrespondances.push(x)
}
}
const index = Math.floor(Math.random() * (indexCorrespondances.length))
if (liste.includes(truc[indexCorrespondances[index]])) {
indexASupp = liste.indexOf(truc[indexCorrespondances[index]])
help = liste[indexASupp]
console.log(liste, indexASupp)
liste.slice(indexASupp, 1)
console.log(liste)
}
}
}
字符串
如您所见,代码依赖于一些随机性。我在最后一部分尝试做的是从可能的元音列表中删除所选的元音,因为不会有相同的单词。它在大多数情况下都能工作,下面是我运行的命令
第一个月
有时,我最终得到相同的元音,因为两个console.log
向我表明程序得到了正确的索引,但没有像我得到相同的两次一样对列表进行切片。你知道为什么会这样吗
1条答案
按热度按时间jchrr9hc1#
.slice()
返回数组的一部分的浅副本。它不会修改原始数组。参见文件here。所以这个语句liste.slice(indexASupp, 1)
本身实际上没有做任何事情,因为你甚至没有使用它的返回值。它不会修改liste
数组。如果您想修改原始数组(如
liste.splice(indexASupp, 1)
),则可以使用.splice()
。