gpt4 book ai didi

javascript - 在 Javascript 数组中多次返回相同的值

转载 作者:行者123 更新时间:2023-12-02 13:56:38 24 4
gpt4 key购买 nike

我正在尝试返回从以下函数获取的值

function score(string,pattern)
{
counter=0
for(i=0;i<string.length;i++)
{
if(string.toUpperCase().substr(i,pattern.length) == pattern.toUpperCase())
counter++
}
return counter
}

进入以下数组

result=[]

for(i=0;i<web.length;i++){
result[result.length]=score("Coooool!","OO")
}

目前result=4,4,4result=4

感谢任何帮助

最佳答案

问题是,当您定义没有 var 的变量时,它们将成为全局范围的一部分。

您的代码

function score(string, pattern) {
counter = 0
for (i = 0; i < string.length; i++) {
if (string.toUpperCase().substr(i, pattern.length) == pattern.toUpperCase())
counter++
}
return counter
}

result = []

for (i = 0; i < 4; i++) {
console.log("Before call: ", i)
result[result.length] = score("Coooool!", "OO")
console.log("After call: ", i)
}

console.log(result)

已解析的代码

function score(string, pattern) {
var counter = 0
for (var i = 0; i < string.length; i++) {
if (string.toUpperCase().substr(i, pattern.length) == pattern.toUpperCase())
counter++
}
return counter
}

var result = []

for (var i = 0; i < 4; i++) {
result[result.length] = score("Coooool!", "OO")
}

console.log(result)

正如 kevin kloet 所正确指出的那样,您应该使用 .push 而不是 result[result.length]

关于javascript - 在 Javascript 数组中多次返回相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40654624/

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