NodeJS JavaScript -切片不工作,即使我有正确的索引

vlju58qv  于 2023-08-04  发布在  Node.js
关注(0)|答案(1)|浏览(121)

我正在编写一个命令,可以用另一个元音替换一个元音。以下是我到目前为止所做的:

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向我表明程序得到了正确的索引,但没有像我得到相同的两次一样对列表进行切片。你知道为什么会这样吗

jchrr9hc

jchrr9hc1#

.slice()返回数组的一部分的浅副本。它不会修改原始数组。参见文件here。所以这个语句liste.slice(indexASupp, 1)本身实际上没有做任何事情,因为你甚至没有使用它的返回值。它不会修改liste数组。
如果您想修改原始数组(如liste.splice(indexASupp, 1)),则可以使用.splice()

相关问题