javascript - 在javascript中查找重复值时出现问题
问题描述
我有一个数组,我想检查,数组是否包含重复元素。
我尝试下面的代码。此代码在最后阶段给出未定义错误的“CustomNumber”。
请帮忙。
for(var i = 0; i <= myArray.length; i++)
{
for(var j = i; j <= myArray.length; j++)
{
if(i != j && myArray[i].CustomNumber == myArray[j].CustomNumber)
{
return true;
}
}
}
错误:未捕获的类型错误:无法读取未定义的属性“CustomNumber”
解决方案
问题是 j 和 i 都会超出数组的边界。
数组索引的范围从 0 到长度 - 1。因此,在您的循环for(var j = i; j <= myArray.length; j++)
中,最后一次迭代将失败,因为您将尝试引用超出数组末尾的内容。与for(var i = 0; i <= myArray.length; i++)
.
您应该检查 i (或 j )小于数组的长度:
for(var i = 0; i < myArray.length; i++)
{
for(var j = i; j < myArray.length; j++)
{
if(i != j && myArray[i].CustomNumber == myArray[j].CustomNumber)
{
return true;
}
}
}
推荐阅读
- php - 如何使用 Pjax 检查登录并打开 Modal?
- macos - 有没有办法列出 macOS brew 包中的文件?
- go - 使用真实函数结果作为模拟函数参数作证
- typescript - 为什么索引映射类型对于 0 深度元组和所有深度对象的行为似乎相同,但对于 > 0 深度元组则不然?
- rest - Azure Sphere 公共 API:删除设备组方法不起作用
- python - 在 Python 3 中,如何同时运行两个函数?
- css - 溢出滚动可用时
- python - 将Twitter JSON对象从一个文件/多个文件解析为python的最佳方法
- hive - 对 Hive 中的数组值列执行数值运算
- html - 在移动设备中使用浏览器时,我的网站显示不同