TSL语言基础 > 数学与统计教程 > 统计基本函数 > 数组变化函数

集合运算    

  •   取得两个数组的交集、并集和差集,可以使用FilterIn/FilterNotIn以及intersect、union、union2、minus等集合操作.
      FilterIn/FilterNotIn的典型应用,可以支持一维数组的过滤:
      FilterNotIn(array(1,2,3,4,5,5,6,7),array(1,2,3,4),nil)
      结果:array(5,5,6,7)
      也可以使用集合操作来做:  
      array(1,2,3,4,5,5,6,7) minus array(1,2,3,4);
      结果:array(5,6,7)
      此外,FilterIn/FilterNotIn也可以以行为整体进行过滤:
      a:=array();   a[0]["A"]:=1;a[0]["B"]:=2;a[0]["C"]:=3;
      a[1]["A"]:=2;a[1]["B"]:=3;a[1]["C"]:=4;
      a[2]["A"]:=1;a[2]["B"]:=2;a[2]["C"]:=3;
      a[3]["A"]:=4;a[3]["B"]:=5;a[3]["C"]:=6;
      b:=array();
      b[0]["A"]:=1;b[0]["B"]:=2;b[0]["C"]:=3;
      b[1]["A"]:=2;b[1]["B"]:=3;b[1]["C"]:=4;
      return filterin(a,b,nil);
      结果是:array(("A":1,"B":2,"C":3),("A":2,"B":3,"C":4),("A":1,"B":2,"C":3))
      当然intersect、union、union2、minus这些集合运算符速度都很不错。集合和前面的FilterIn函数有个很大的不同点,就是集合运算(除union)得到的元素不允许重复。