gpt4 book ai didi

javascript - !== 比较运算符应该为 True 但不是

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

function nonUniqueElements(data) {
var duplicates = [];
var compArr = data;

for (var i = 0; i < data.length; i++) {
for (var j = 0; j < compArr.length; j++) {
console.log('Comparing ' + data[i] + ' to ' + compArr[j]);
if (data[i] === compArr[j]) {
console.log('Found match first pass');
console.log(data.indexOf(i), compArr.indexOf(j));
if (data.indexOf(i) !== compArr.indexOf(j)) {
console.log('Also passes second pass')
console.log('Pushing ' + data[i] + ' to new array')
duplicates.push(data[i]);
console.log(duplicates);
}
}
}
console.log('End of run through');
}

return (duplicates);
}

console.log(nonUniqueElements([5, 5, 5, 5]));

我试图返回数组中的所有非唯一值。我已经复制了该数组,并运行一个嵌套循环来将副本与原始数组进行比较。

当它找到匹配项时(在这种情况下每次),都会进行第二次检查,以确保仅将不同索引处的值推送到新数组。

我已经添加了一些 console.log() 来帮助我逐步完成程序。即使 console.log(data.indexOf(i), compArr.indexOf(j)) 打印不同的值, if (data.indexOf(i) ! == compArr.indexOf(j)) 语句未运行。

有什么想法吗?

最佳答案

在 JS 中,indexOf() 方法返回指定值在字符串/数组中第一次出现的位置。您可以看出这是错误的,因为在 console.log 中您总是得到值 -1。您需要比较的是 data[i] 和 compArr[j]。

关于javascript - !== 比较运算符应该为 True 但不是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52951056/

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