• 数组辅助函数(Arr)
    • 可用方法
    • Merge
    • Rand
    • Shuffle
    • Splice
    • Chunk
    • Fill
    • Remove
    • Filter
    • Map
    • Pop
    • Push
    • Reduce
    • Slice
    • Shift
    • Unshift
    • Reverse
    • IndexOf
    • Difference
    • RemoveAt
    • Flash
    • Cut

    数组辅助函数(Arr)

    数组方法库允许您通过简单的方式访问和操作数组。

    可用方法

    • Merge
    • Rand
    • Shuffle
    • Splice
    • Chunk
    • Fill
    • Remove
    • Filter
    • Map
    • Pop
    • Push
    • Reduce
    • Slice
    • Shift
    • Unshift
    • Reverse
    • IndexOf
    • Difference
    • RemoveAt
    • Flash
    • Cut

    Merge

    将多个数组合并成一个数组。

    1. Arr.Merge(new []{"1","2"} , new []{"3"}); // ["1" , "2" , "3"]

    Rand

    从规定数组中获取一个或者指定数量的随机值。

    1. var result = Arr.Rand(new []{"1", "2" , "3"});

    Shuffle

    将规定数组中的元素打乱。

    1. var result = Arr.Shuffle(new []{"1" , "2" , "3"});

    Splice

    从数组中移除指定长度的元素,如果给定了替换数组参数,那么替换数组中的元素将会从起始位置开始插入。

    1. var data = new []{"1","2","3"};
    2. var count = Arr.Splice(ref data , 1 , 1,new []{"4" , "5"});
    3. // data : ["1" , "4" , "5" , "3"]
    4. // count : 4

    Chunk

    将数组分为新的数组块,其中每个数组的单元数目由大小参数决定。最后一个数组的单元数目可能会少几个。

    1. var result = Arr.Chunk(new []{"1","2","3"} , 2);
    2. // result : [["1","2"],["3"]]

    Fill

    对数组进行填充,如果传入了规定数组,那么会在规定数组的基础上进行填充

    1. var result = Arr.Fill(2,3,"100",new []{"1","2","3"});
    2. // result : ["1","2","100","100","100","3"]

    Remove

    将数组每个值传给回调函数,如果回调函数返回 true,则移除数组中对应的元素,并返回被移除的元素

    1. var data = new string[]{"1","2","3"};
    2. var result = Arr.Remove(ref data,(v) => v == "2");
    3. // result : ["2"]
    4. // data: ["1","3"]

    Filter

    输入数组中的每个值传给回调函数,如果回调函数返回 true,则把输入数组中的当前值加入结果数组中。

    1. var result = Arr.Filter(new[]{"1", "2" , "3" , "4" , "5"},(v) => (v % 2) == 0);
    2. // result : ["2" , "4"]

    Map

    将数组值传入用户自定义函数,自定义函数返回的值作为新的数组值。

    1. var result = Arr.Map(new[]{1 , 2 , 3} , (v) => v * 2);
    2. // result : [2 , 4 , 6]

    Pop

    删除数组中的最后一个元素,并将删除的元素作为返回值返回

    1. var data = new []{"1","2","3"};
    2. var result = Arr.Pop(ref data);
    3. // result : "3"
    4. // data.Length : 2

    Push

    将一个或多个元素加入数组尾端。

    1. var data = new []{"1","2"};
    2. var count = Arr.Push(ref data, "3","4","5");
    3. // data : ["1","2","3","4" ,"5"]
    4. // count : 5

    Reduce

    向用户自定义函数发送数组中的值,并返回一个字符串。
    如果数组是空的且未传递初始化参数,该函数返回 null。
    如果指定了初始化参数,则该参数将被当成是数组中的第一个值来处理,如果数组为空的话就作为最终返回值(string)。

    1. var result = Arr.Reduce(new []{"1" , "2" , "3"},(v1,v2)=> v1+"-"+v2,"0");
    2. // result : 0-1-2-3

    Slice

    在数组中根据条件取出一段值,并返回。

    1. var result = Arr.Slice(new []{"1","2","3","4","5"},1,3);
    2. // result : ["2","3","4"]

    Shift

    删除数组中第一个元素,并返回被删除元素的值

    1. var data = new []{"1","2","3"};
    2. var result = Arr.Shift(ref data);
    3. // result : "1"
    4. // data.Length : 2

    Unshift

    向数组插入新元素。新数组的值将被插入到数组的开头。

    1. var data = new []{"2","3"};
    2. var count = Arr.Unshift(ref data , "0" , "1");
    3. // count : 4
    4. // data ["0" , "1" , "2" , "3"]

    Reverse

    以相反的顺序返回数组。

    1. var result = Arr.Reverse(new []{"1" , "2" ,"3"});
    2. // result : ["3" , "2" , "1"]

    IndexOf

    从数组中检索指定的值并返回所在的下标,如果返回-1则代表没有出现

    1. var result = Arr.IndexOf(new []{"1" , "2" ,"3" , "4" , "5"} , new []{ "2" , "3" });
    2. // result : 1

    Difference

    从数组中排除指定的值

    1. var result = Arr.Difference(new []{"1" , "2" ,"3" , "4" , "5"} , new []{ "2" , "3" });
    2. // result : ["1","4","5"]

    RemoveAt

    从数组中移除并返回指定下标的元素。

    1. var src = new object[]{ "1" , "2" , "3" };
    2. var result = Arr.RemoveAt(ref src, 1); // 2
    3. // src : object[] { "1" , "3" }

    Flash

    临时性的回调元素,如果遇到异常或者完成回调后会进行回滚元素回调

    1. var src = new object[]{ "a", "b" , "c" };
    2. Arr.Flash(src,
    3. (element)=> Console.WriteLine("start:" + element),
    4. (element)=> Console.WriteLine("rollback:" + element),
    5. ()=> { Console.WriteLine("Completed"); });
    6. // start:a
    7. // start:b
    8. // start:c
    9. // Completed
    10. // rollback:c
    11. // rollback:b
    12. // rollback:a

    Cut

    修剪指定长度的数组,负数为从后向前修剪

    1. var data = new char[] { '1', '2', '3', '4', '5' };
    2. Arr.Cut(ref data, 1);
    3. // data[0] == 2