Javascript 使用if/else匹配包含rgb颜色值的两组数组

Javascript 使用if/else匹配包含rgb颜色值的两组数组,javascript,arrays,if-statement,Javascript,Arrays,If Statement,因此,我可以使用rgb颜色值创建一个数组,例如: var atomArr=['rgb255,255,255','rgb255,34,0','rgb255,34,0'] 不必详细说明,我甚至可以使用数组中的值指定对象的背景色 那么,为什么我不能选取两个相似的数组并检查它们是否都匹配有序匹配(不需要),但两个数组必须包含相同的值 在下面的示例中,两个数组具有完全相同的值(顺序不同),但总是触发false var h2o=['rgb255,255,255','rgb255,34,0','rgb255

因此,我可以使用rgb颜色值创建一个数组,例如:

var atomArr=['rgb255,255,255','rgb255,34,0','rgb255,34,0']

不必详细说明,我甚至可以使用数组中的值指定对象的背景色

那么,为什么我不能选取两个相似的数组并检查它们是否都匹配有序匹配(不需要),但两个数组必须包含相同的值

在下面的示例中,两个数组具有完全相同的值(顺序不同),但总是触发false

var h2o=['rgb255,255,255','rgb255,34,0','rgb255,34,0']; 功能检查{ var atomArr=['rgb255,34,0','rgb255,255,255','rgb255,34,0']; varⅠ,j; var totalmatches=0; 对于i=0;iCheckh2o 这种方法使用函数reduce to sum匹配

var h2o=['rgb255,255,255','rgb255,34,0','rgb255,34,0']; 功能检查{ var atomArr=['rgb255,34,0','rgb255,255,255','rgb255,34,0']; var检查=真; A.forEachr=>{ 如果!检查返回; var-count=A.reducea,c=>A+c==r?1:0,0; var outerCount=atomArr.reducea,c=>a+c==r?1:0,0; 已检查=已检查和计数===外部计数; }; console.logchecked; }
Checkh2o;总匹配数为5。你需要一个不同的算法来考虑重复。啊,谢谢你给我指出还原方法。在做了一些研究之后,这种方法是有意义的。我想使用您的解决方案多次不同的颜色组合。我曾尝试以多种不同的方式重置/清除您的解决方案中的所有变量,但不管怎样,每次启动时计数,尤其是outerCount增量都会更高,这给了我一个错误的答案。不幸的是,我在这个速记JS语法方面并不是非常熟练。在使用另一组数组再次调用此函数之前,我如何重置/清除此函数?@themandoz您能分享一下您是如何使用此方法的吗?如您所见,函数检查始终使用相同的内部数组。分享您如何使用来帮助您。因此,我简化了我的模型,准备在CodePen中向您展示这个问题,但随后发现您的代码工作正常。所以很明显,我需要进一步研究我的剧本,看看哪里有问题。如果我想不出来,我会告诉你的。再次感谢您的反馈。我发现了我的错误,您的解决方案现在运行良好!再次感谢!