2016-10-13 00:16:48 点击量:12 标签: 收藏本文
我们也许想在代码中使用随机化的数字序列,为了在不同的场合让代码表现的不一样。因为在AS3中我们没法用数组洗牌方法,所有只有自己写一些代码来实现这种效果了。
这里,我用AS3给出了实现随机数组的不同方法。最关键的一点是没有使用循环语句。
下面就是我列举出来的随机化数组的不同算法:
1.没有循环语句法:
- var rawArr:Array = ["1","2","3","4","5"];
- trace(randomizeArray(rawArr));
- function randomizeArray(myArray:Array):Array
- {
- myArray.sort(function(){ return Math.random()-0.5; });
- return myArray;
- }
2.用for循环法:
- var rawArr:Array = ["1","2","3","4","5"];
- trace(randomizeArray(rawArr));
- function randomizeArray(myArray:Array):Array
- {
- for (var i:uint = 0; i < myArray.length; i++)
- {
- var rand:uint = int(Math.random() * myArray.length);
- myArray.push( myArray.splice( rand, 1 )[0] );
- }
- return myArray;
- }
3.用while循环法:
- var rawArr:Array = ["1","2","3","4","5"];
- trace(randomizeArray(rawArr));
- function randomizeArray(array:Array):Array
- {
- var newnewArray:Array = new Array();
- while (array.length > 0)
- {
- newArray.push(array.splice(Math.floor(Math.random()*array.length), 1));
- }
- return newArray;
- }
随机取值
- var list:String="CuPlayer_test1.jpg|CuPlayer_test2.jpg|CuPlayer_test3.jpg|CuPlayer_test4.jpg";
- var words:Array=list.split("|");//以空格作为分隔符将字符串切割
- //trace(words);//输出
- //var ranNum:Array=["test.jpg","test23.jpg","test2.jpg","test4.jpg"];
- //trace(ranNum[Math.floor(Math.random() * ranNum.length)]);
- trace(words[Math.floor(Math.random() * words.length)]);
我们是一家提供综合软件外包与弱电工程服务的技术公司。
业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。
公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室