繁体   English   中英

如何在 JavaScript 中将当前数组元素与下一个数组元素进行比较

[英]How to compare current array element to next array element in JavaScript

我有用户可以选择的颜色模板,也可以根据需要更改各个颜色。 我有两个数组:一个包含所有模板,每个模板包含一个包含 8 种颜色的调色板和一个模板名称字符串。 我的大多数模板都有白色背景,所以我不希望用户必须点击 12 次或点击多少次才能到达另一个背景颜色不同的索引。 我的想法是使用“for”语句来检查数组中的下一个元素,并将其与当前元素进行比较以查看它们是否相同。 如果元素相同,那么我增加数组并再次检查“for”语句,有效地跳过任何重复的索引,直到找到新值。

为此,我使用了这样的“for”语句:

( ; array[index][colorSlot] == array[index+1][colorSlot]; index++)

这工作得很好,直到我到达最后一个数组索引,它会查找显然不存在的下一个索引,从而完全破坏了我的功能。 有没有办法防止它查看不存在的数组索引? 我应该使用“for”语句以外的其他东西吗?

您可能想要上升到倒数第二个数组索引并跳过所有重复。

for(let index=0; index<array.length-2; index++)
{
    if[index][colorSlot] != array[index+1][colorSlot]
    {
    }
}

您可以尝试使用 while 循环,在您的情况下,它是比 for 循环更好的选择。

 let index = 0; while (index < array.length -2 && array[index][colorSlot] != array[index+1][colorSlot] ) { ... index++; }

好的,我想通了。

在我的 for 循环中,我检查两个条件:首先,我检查是否[index+1]!=array.length然后我检查当前数组值是否等于下一个值(如上所述)。 如果检查索引的下一个值会导致它搜索不存在的索引,它会退出 for 语句并重置我的索引。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM