问题来源
分析并判断两个一维数组中包含的元素是否完全相同,不考虑索引顺序。比如说[1,5,7,3]和[3,5,7,1]是完全相同的两个一维数组,那[1,5,7,3]和[5,7,1,4]就不是相同的数组。结合我给出的示例,大家有没有什么思路呢?
思路分析
思路很简单,就是直接用"="判断,类似于下图的代码。
但是很明显,上面的代码输出的是"false",我们还需要将元素一一对应才行,这个时候可以用到数组排序,这样每一个元素对比后,再将结果数组与运算,就能得到"true"的结果。
这个问题很简单,但是我写这篇文章是想分享一个大家容易忽视的点。那就是如果两个数组大小不等,应该输出"false"的情况却会输出"true"。我们看一下代码演示。
明明长度都不相等的两个一维数组,怎么可能输出相等的结果?其实这涉及到了labview多个数组运算的一个底层逻辑,它会以长度最小的数组为限制,超出的索引部分都会被忽略掉。这点很重要,大家在其他的数组运算或for循环结构运算中一定要注意。
那么基于此,回到本文中的问题,我们做一个简单的处理,增加两个数组长度的比对,就能够对代码进行优化。
我们得到了正确的输出"false"。
文末总结
大家不要觉得这是一个小问题,不起眼,当你在项目中遇到,并出了大错就为时已晚了。平时的积累还是很重要的,我把这个问题写成文章分享给大家,希望能对你们有所帮助。