gpt4 book ai didi

javascript - 为什么我的 jquery 循环对两个数组的值进行不正确的比较?

转载 作者:行者123 更新时间:2023-12-03 00:32:36 25 4
gpt4 key购买 nike

我有两个数组...

var arr3 = [];
$('td:nth-child(2)').each(function() {
arr3.push($(this).text());
});
//console.log(arr3);

var arr4 = [];
$('td:nth-child(6)').each(function() {
arr4.push($(this).text());
});
//console.log(arr4);

这些在图表中收集了我想要的一些数据。我的目标是比较两个数组,看看对于每个给定位置,arr3 中的值是否大于或等于 arr4 中的值。

昨天一切似乎都正常,但今晚我稍微更改了数据,现在它说的是事实,但事实并非如此。

arr3 = ["0", "0", "30"]
arr4 = ["150", "150", "140"]

所以0 < 150 , 0 < 150它应该是 30 < 140但我的循环却显示 30 >= 140 .

这是我的循环:

for (var i = 0; i < arr3.length; i++) {
if (arr3[i] >= arr4[i]) {
console.log(arr3[i] + " is >= " + arr4[i]);
var bearned2 = $('.g2bonus')[i];
$(bearned2).append(' ✔');
} else {
console.log(arr3[i] + " is < " + arr4[i]);
}
}

我尝试对此进行研究并发现了关闭错误,但我不太理解它并且无法对我的情况应用适当的修复。我尝试了这个循环,但它只报告第一个比较,而不报告其他两个:

for (var i = 0; i < arr3.length; arr3++) {
(function(index) {
if (arr3[i] >= arr4[i]) {
console.log(arr3[i] + " is >= " + arr4[i]);
var bearned2 = $('.g2bonus')[i];
$(bearned2).append(' ✔');
} else {
console.log(arr3[i] + " is < " + arr4[i]);
}
})(i);
}

对此有什么帮助吗?谢谢。

最佳答案

您需要将数组中数字的字符串表示形式转换为整数/数字,以便您的不等式正常工作。如:

"30">= "140"true

但是

30 >= 140

为此,您只需在表示数字的字符串前面添加一个 + 即可将其转换为数字(整数、 float 等...)

请参阅下面的工作示例:

var arr3 = ["0", "0", "30", "100"];
var arr4 = ["150", "150", "140", "0"];

for (var i = 0; i < arr3.length; i++) {
if (+arr3[i] >= +arr4[i]) { // Add + infront of arr3[i] and arr4[i] to convert to numbers
console.log(arr3[i] + " is >= " + arr4[i]);
var bearned2 = $('.g2bonus')[i];
$(bearned2).append(' ✔');
} else {
console.log(arr3[i] + " is < " + arr4[i]);
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

另外,我在末尾添加了另一项检查,以表明它不会为每个值输出 false 并且您的检查正在工作(100 >= 0true)

关于javascript - 为什么我的 jquery 循环对两个数组的值进行不正确的比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53791370/

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