前天在写一个功能的时候需要几张纸牌头尾相互比较,也就是一共有10张纸牌,第1张和第10张比较,第2张和第9张比较,第3张和第8张比较...以此类推。那么怎么实现呢?思路如下:
假如这是10张纸牌:
1 2 3 4 5 6 7 8 9 10
我们要达到类似这样的效果:
1 10
2 9
3 8
4 7
5 6
这样他们就可以相互比较啦!
那第一步可以怎样做呢?我的做法是这样的,先把这10张纸牌折半,注意是按序号为奇偶数来折半,奇数为一组,偶数为一组,也就是
1 3 5 7 9
2 4 6 8 10
写成代码是这样的(这里简单演示)
那么我们还需要把序号为偶数的数组evenArr翻转,才能达到头尾比较的效果
接下来我们再创建一个新数组存放需要比较的数就行了
然后再把各个小数组按顺序排列就行啦
当然这个并不只是可以简单比较这种数组,如果用于比较对象属性的话,用这个方法也可行的