【发布时间】:2020-01-07 07:24:01
【问题描述】:
我正在尝试通过评估数组的第一个和第三个元素,按字母顺序对数组的内容进行排序。我尝试使用数组中的第二个和第三个元素来评估和排序数组。但是我还是没能得到想要的结果。
这是收藏的内容
#(#('Philippines' 'Davao' 'Durian')
#('Philippines' 'Cebu' 'Mango')
#('Philippines' 'Zambales' 'Lanzones)
#('Thailand' 'Bangkok' 'Durian')
#('Thailand' 'Phuket' 'Mango')
#('Vietnam' 'Ho chi min' 'Banana')
#('Vietnam' 'Hanoi' 'Mango'))
这就是我所做的:
newArray := arrValues asArray.
newContent := newArray asSortedCollection: [ :ea :each | (ea at: 2) < (each at: 3) and: [ (ea at: 3) < (each at: 3) ] ].
这是我的输出:
#(#('Vietnam' 'Ho chi min' 'Banana')
#('Thailand' 'Bangkok' 'Durian')
#('Philippines' 'Davao' 'Durian')
#('Vietnam' 'Hanoi' 'Mango'))
#('Thailand' 'Phuket' 'Mango')
#('Philippines' 'Zambales' 'Lanzones)
#('Philippines' 'Cebu' 'Mango')
输出应该是:
#(#('Vietnam' 'Ho chi min' 'Banana')
#('Thailand' 'Bangkok' 'Durian')
#('Philippines' 'Davao' 'Durian')
#('Philippines' 'Cebu' 'Mango')
#('Vietnam' 'Hanoi' 'Mango'))
#('Thailand' 'Phuket' 'Mango')
#('Philippines' 'Zambales' 'Lanzones)
【问题讨论】:
-
您要求的输出(“输出应该是:”)未排序,因此实际上没有人可以给您一个与之匹配的正确答案。在每一列中你都有错误('Vietnam' 在'Thailand'之上,'Ho chi min' 在'Bankok'之上;'Mango' 在'Lanzones'之上)
-
@PeterUhnak no:这是因为第三个元素用作主要谓词,然后是第二个......
-
-
@PeterUhnak :) 我应该核实我上次咨询眼科医生的时间......
标签: arrays sorting oop object smalltalk