我有一个ActionScript 3数组,列出项目配对是这样的:转换列表
pairs[0] = Array('ItemA', 'ItemB'); pairs[1] = Array('ItemA', 'ItemC'); pairs[2] = Array('ItemC', 'ItemD'); pairs[3] = Array('ItemC', 'ItemE'); pairs[4] = Array('ItemF', 'ItemG'); pairs[5] = Array('ItemF', 'ItemH');
,我需要循环阵列上以某种方式找到所有重叠对(任何共享公共对的对)。
例如,ItemA
与ItemB
和ItemC
配对,因此它们属于一个群组。 ItemC
也与ItemD
和ItemE
配对,所以它们也需要成为第一组的一部分。
ItemF
,ItemG
和ItemH
不与第一组中的任何项目重叠,所以它们需要被放入他们自己的组中。
产生的阵列将需要是这样的:
groups[0] = Array('ItemA', 'ItemB', 'ItemC', 'ItemD', 'ItemE'); groups[1] = Array('ItemF', 'ItemG', 'ItemH');
感谢您的帮助和建议!
编辑:
一回故事的一点点;我试图将2D中彼此重叠的影片剪辑分组在一起,以创建组或群集(可能是更好的词)。
所以如果我在舞台上有3个影片剪辑并且ClipA与ClipB重叠并且ClipB与ClipC重叠(但是ClipA不直接与ClipC重叠),它们应该全部组合在一起,因为它们都是同一个集群的一部分。这样一个新的剪辑应该与群集中的任何单个项目重叠,它将被添加到该群组的数组中。
我已经得到了代码,找出产生这对列表的重叠元素,现在我需要将它压缩成整齐的组。
可能有所帮助:基本上我想做的这个完全相反(http://stackoverflow.com/questions/3770362/split-array-into -unique对),但在AS3(不是PHP)。虽然如果解决方案是用PHP提供的,我可能很容易将其应用到AS3中。 – Levi 2010-11-29 07:06:04