gpt4 book ai didi

javascript - if 语句评估不正确

转载 作者:行者123 更新时间:2023-11-30 12:18:49 25 4
gpt4 key购买 nike

function ipsBetween(start, end){
var count = 0;
for(var i = 0; i < 4; i++) {
if(start.split('.').slice(i, i + 1) != end.split('.').slice(i, i + 1)) {
count++;
}
}
return count;
}

我试图找到一个范围内所有可能的 IP。上面的代码只是一个开始。我试图将 IP 分成几部分并检查它们是否相等。当我这样做时,有趣的是,即使值相等,它也会将 if 语句评估为 true 并增加计数。这是我的测试用例:

ipsBetween("10.0.0.0", "10.0.0.50")

这个测试用例返回 4,而它应该返回 1。我不知道为什么会这样。我隐含地查看了 start.split('.').slice(i, i + 1)end.split('.').slice(i, i + 1) 的值) 前三个元素似乎是相等的。

最佳答案

这里真的没有必要使用.slice()。 (这就是导致问题的原因:.slice() 返回一个数组,并且两个不同的数组永远不会彼此相等。)首先拆分字符串,然后只使用数组索引:

var count = 0;
start = start.split("."); end = end.split(".");
for (var i = 0; i < start.length; ++i)
if (start[i] != end[i])
count++;
return count;

关于javascript - if 语句评估不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31660045/

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