好的写法 数组唯一化, 这个是多么的简单,。
fn CopyArr arr = return for el in arr collect el
 
 ---------------------------
 fn OptimisedArr arr =  
 (
  local newArr = #()
  
  for el in arr where (findItem newArr el == 0) do
   append newArr el
   
  return newArr
 )
--其实吧数组在倒腾一下就好, 这个很经典, 下面看看我之前写的唯一化的的东东,
--大家看看我写的,真实太繁琐了。
---这些代码就可以吧数组唯一化。
--其实这个数组很不严谨。如果数组没有一样的。就不行了。必须又一个一样的才能出来。 什么时候用在整理把。
fn weiyipailei jk = 
(
oop= jk.count-1 ---输入的数组数量少1 
stringarray =#()
for i in 1 to oop do 
( 
 linshi =i as string --把元素转成字符串。
 oom = i+1  --其实就是递归比较。
 for m in oom to jk.count do ---从前一个网后走。
 (if jk[i]== jk[m] then  
 (
 linshi+= "-" +m as string  --- 进行字符串的罗列相加。
 )--end for 
 )
 ----- 这个其实是我之前写别的查找相同 写的。 
 --顺便改成了数组唯一化得。
 
 
 if (filterString linshi "-" ).count >1 then 
 (
 append stringarray linshi
 )---end if 
)---end for i
---通过上面的循环我们就知道了数组内相同的一些。
---上面会出现金子塔的东西 如1—2—3  2—3  就会出现这样的相同的形式。
if stringarray.count >=1 then --如果是真的有相同的数量的话
( 
xin=#()
yytadd_mat_dao=#()
map_ = stringarray.count-1 
map__= stringarray.count
for m in 1 to map_ do 
(
 ecct= m+1
 for each in ecct to map__ do 
 (     
  ---再次内部比较,如果查找到字符中有  1—2—3  2—3 的, 通过下面的查找,就真正的查找到了相同的东西。
  if( findString stringarray[m] stringarray[each] != undefined ) then 
  ( 
  append yytadd_mat_dao stringarray[each] ---把唯一的元素加入到数组。 
  )
 )
)
for nu in stringarray do  ---这里由加入了一个数组唯一化的东西。其实我觉得这里应该不用加入。因为是这样的,上面应该数组唯一化了。
 --这里就是个保险
(
if findItem yytadd_mat_dao nu ==0 then 
append xin nu 
) 
)
tiqu_shuzu =#()
tiqu_shuzu_ling =#()
---------------------------在这里不是对所有的是有处理的, 如 mun[1]as integer 必须保证能转化。 所有我这个还是应用到材质上的。
for i in xin do 
(
mun = filterString i "-"  ---这个只能是说 或数组字符数组, 要不下面就是没有办法满足。
append tiqu_shuzu jk [mun[1]as integer]
)---end for
for i in jk do 
(
if findItem tiqu_shuzu i ==0 then 
append tiqu_shuzu_ling i
)---end for 
sort ( tiqu_shuzu+ tiqu_shuzu_ling)
)
 
                    
                     
                    
                 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号 
