gpt4 book ai didi

javascript - 控制台一次仅打印一个字母,而不是完整的单词

转载 作者:行者123 更新时间:2023-11-28 11:44:54 24 4
gpt4 key购买 nike

我的目标是让控制台打印从 res_GREETINGS 数组中随机选择的单词。

当我调用 randomResponse 函数时,它应该从 res_GREETINGS 数组中选择一个随机单词。相反,控制台仅随机打印一个字母。

现在,当我用 randomResponse 参数替换实际 res_GREETINGS 数组的名称时,它工作正常。当我将 "res"+ wordBank 传递给 randomResponse 时,它​​似乎只是打印出字母。

let _GREETINGS = ["hello", "hi", "hey", "nice to meet you"]
let res_GREETINGS = ["yayyy", "double yayy", "triple yay"]
let userInput = "hi"

function init(wordBank) {
for (let i = 0; i < wordBank.length; i++) {
if (userInput.indexOf(wordBank[i]) != -1) {
randomResponse("res" + wordBank);
}
}
}

function randomResponse(arr) {
let randomIndex = Math.floor(Math.random() * arr.length);
console.log(arr[randomIndex]);
}

init(_GREETINGS);

最佳答案

使用 randomResponse("res"+wordBank);,您reswordBank 连接起来 - wordBank 数组隐式转换为字符串,这意味着 randomResponse 获取的参数(arr 变量)是一个字符串,不是数组。 (因此,arr[randomIndex] 然后引用一个字母,而不是短语。)省略“res”,它会按预期工作:

let _GREETINGS = [
"hello", "hi", "hey", "nice to meet you"
]
let res_GREETINGS = [
"yayyy", "double yayy", "triple yay"
]
let userInput = "hi"

function init(wordBank) {
for (let i = 0; i < wordBank.length; i++) {
if (userInput.indexOf(wordBank[i]) != -1) {
randomResponse(wordBank);
}
}
}

function randomResponse(arr) {
let randomIndex = Math.floor(Math.random() * arr.length);
console.log(arr[randomIndex]);
}

init(_GREETINGS);

为了使代码更具语义性和可读性,您可以考虑使用 .some 来检查输入是否存在于任何 _GREETINGS 元素中 - 它会比 for 循环更优雅一点:

let _GREETINGS = [
"hello", "hi", "hey", "nice to meet you"
]
let res_GREETINGS = [
"yayyy", "double yayy", "triple yay"
]
let userInput = "hi"

function init(wordBank) {
if (wordBank.some(phrase => userInput.includes(phrase))) {
randomResponse(wordBank);
}
}

function randomResponse(arr) {
let randomIndex = Math.floor(Math.random() * arr.length);
console.log(arr[randomIndex]);
}

init(_GREETINGS);

关于javascript - 控制台一次仅打印一个字母,而不是完整的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53406003/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com