gpt4 book ai didi

javascript - 为什么它返回 '-1'而不是索引jQuery的索引

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

我正在运行“for”循环来检查 winOptions 数组中的元素是否在 oneNums 数组中。但是,每次我使用 indexOf 属性时,即使该数字位于 oneNums 数组中,它也会发送回 -1 。是否有可能因为 ['1','2'][1,2] 不同而返回?我怎样才能解决这个问题。

我有这个变量:

 var oneNums = [];
var winOptions = [[1,2,3],[4,5,6],[7,8,9],[1,5,9],[3,5,9],[1,4,7],[2,5,8],[3,6,9]];
var a;

这个 jQuery 函数:

$('.btn-xo').click(function(){
if (turn === 'one'){
$(this).text(pickOne);
$(this).prop('disabled', true);
oneNums.push($(this).val());
oneNums.sort(function(a, b){
return a - b;
});
for(var i = 0; i < winOptions.length; i++){
for(var j = 0; j < winOptions[i].length; j++){
a = oneNums.indexOf(winOptions[i][j]);
if (a === -1){
p1 = [];
break;
} else {
p1.push(oneNums[a]);
console.log('aca');
}
}
}
console.log(a);
turn = 'two';
count += 1;
}

最佳答案

indexOf 带有数字的字符串将失败。因此,数字更改为字符串

首先使用.toString()将数字转换为字符串

for(var i = 0; i < winOptions.length; i++){
for(var j = 0; j < winOptions[i].length; j++){
a = oneNums.indexOf((winOptions[i][j]).toString());
if (a === -1){
p1 = [];
break;
} else {
p1.push(oneNums[a]);
console.log('aca');
}
}
}

检查这两个示例,

['1','2'].indexOf(1); o/p ===> -1

['1','2'].indexOf((1).toString()); o/p ===> 0

关于javascript - 为什么它返回 '-1'而不是索引jQuery的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42967665/

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