gpt4 book ai didi

javascript - 为什么 .test() 的结果会改变?

转载 作者:行者123 更新时间:2023-12-03 06:36:58 24 4
gpt4 key购买 nike

我的代码如下所示:

function testfunc() {

var exp = /aa/gi;

var ret = [];

var test = ['aaa', 'aaa', 'aaa', 'aaa', 'aaa', 'aaa'];

for (var j = 0; j < test.length; j++) {

ret.push(exp.test(test[j]));

}

console.log(ret);

}

testfunc();

而不是返回

[true, true, true, true, true, true]

返回

[true, false, true, false, true, false] 

我不明白为什么!

我的代码有什么问题吗?

最佳答案

您必须删除 g 修饰符,因为 lastIndex

匹配下一个对象时将从上次使用的索引开始,而不是0

function testfunc() {
var exp = /aa/i;
var ret = [];
var test = ['aaa', 'aaa', 'aaa', 'aaa', 'aaa', 'aaa'];
for (var j = 0; j < test.length; j++) {
ret.push(exp.test(test[j]));
}
console.log(ret);
}
testfunc();

关于javascript - 为什么 .test() 的结果会改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38156165/

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