[ActionScript 3.0] 对数组中的元素进行排序Array.sort()的方法
对数组中的元素进行排序。 此方法按 Unicode 值排序。 (ASCII 是 Unicode 的一个子集。)
默认情况下,Array.sort()按以下方式进行排序:
1. 排序区分大小写(Z优先于a)。
2. 按升序排序(a优先于b)。
3. 修改该数组以反映排序顺序;在排序后的数组中不按任何特定顺序连续放置具有相同排序字段的多个元素。
4. 元素无论属于何种数据类型,都作为字符串进行排序,所以 100 在 99 之前,这是因为 "1" 的字符串值小于 "9" 的字符串值。
如果要使用与默认设置不同的设置对数组进行排序,可以使用...args参数说明中sortOptions部分所描述的某种排序选项,也可以创建
自定义函数来进行排序。 如果创建自定义函数,请调用sort()方法,并将自定义函数的名称作为第一个参数 (compareFunction)。
参数
...args— 指定一个比较函数和确定排序行为的一个或多个值的参数。
此方法使用语法和参数顺序Array.sort(compareFunction, sortOptions),其参数定义如下:
*compareFunction- 一个用来确定数组元素排序顺序的比较函数。 此参数是可选的。 比较函数应该用两个参数进行比较。 给定元
素 A和 B,compareFunction的结果可以具有负值、0 或正值:
○ 若返回值为负,则表示 A 在排序后的序列中出现在 B 之前。
○ 若返回值为 0,则表示 A 和 B 具有相同的排序顺序。
○ 若返回值为正,则表示 A 在排序后的序列中出现在 B 之后。
*sortOptions- 一个或多个数字或定义的常量,相互之间由|(按位 OR)运算符隔开,它们将排序的行为从默认行为更改为其它行
为。 此参数是可选的。 下面是sortOptions可接受的值:
○ 1 或Array.CASEINSENSITIVE
○ 2 或Array.DESCENDING
○ 4 或Array.UNIQUESORT
○ 8 或Array.RETURNINDEXEDARRAY
○ 16 或Array.NUMERIC
返回
Array— 返回值取决于您是否传递任何参数,如以下列表中所述:
• 如果为...args参数的sortOptions变量指定值 4 或Array.UNIQUESORT,并且所排序的两个或更多个元素具有相同的排序字
段,则Flash 返回值 0 并且不修改数组。
• 如果为...args参数的sortOptions变量指定值 8 或Array.RETURNINDEXEDARRAY,则 Flash 返回排序后的索引数值数组
以反映排序结果,并且不修改数组。
• 否则,Flash 不返回任何内容并修改该数组以反映排序顺序。
下例是将sort()方法与自定义排序函数 (sortOnPrice) 一起使用,该函数按 price 排序,而不是按字母顺序排序。 请注意,新函数
getPrice()将提取 price。
以下Main.as可作为文档类测
package
{
import flash.display.Sprite; /**
* ...
* @author FrostYen
*/
public class Main extends Sprite
{
var vegetables:Array = new Array ;
public function Main()
{
vegetables.push(new Vegetable("lettuce",1.49));
vegetables.push(new Vegetable("spinach",1.89));
vegetables.push(new Vegetable("asparagus",3.99));
vegetables.push(new Vegetable("celery",1.29));
vegetables.push(new Vegetable("squash",1.44));
trace(vegetables);
// lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44
vegetables.sort(sortOnPrice);
trace(vegetables);
// celery:1.29, squash:1.44, lettuce:1.49, spinach:1.89, asparagus:3.99
} private function sortOnPrice(a:Vegetable,b:Vegetable):Number
{
var aPrice:Number = a.getPrice();
var bPrice:Number = b.getPrice(); if ((aPrice > bPrice))
{
return 1;
}
else if ((aPrice < bPrice))
{
return -1;
}
else
{
//aPrice == bPrice
return 0;
}
}
} }
class Vegetable;
{
private var name:String;
private var price:Number; public function Vegetable(name:String,price:Number)
{
this.name = name;
this.price = price;
} public function getPrice():Number
{
return price;
} public function toString():String
{
return " " + name + ":" + price;
}
}
[ActionScript 3.0] 对数组中的元素进行排序Array.sort()的方法的更多相关文章
- Java比较两个数组中的元素是否相同的最简单方法
import java.util.Arrays; public class Test { /** * Java比较两个数组中的元素是否相同 */ public static void main(Str ...
- 数组中的元素 增加push用法 unshift() 方法 和减少pop() 方法 shift() 和其他位置增删 splice() 方法 join() 方法 reverse() 方法 sort() 方法
push用法 push 英 [pʊʃ] 美 [pʊʃ] vt. 推,推动; vt. 按; 推动,增加; 对…施加压力,逼迫; 说服; n. 推,决心; 大规模攻势; 矢志的追求 定义和用法 push( ...
- 面试题-->写一个函数,返回一个数组中所有元素被第一个元素除的结果
package com.rui.test; import java.util.Random; /** * @author poseidon * @version 1.0 * @date:2015年10 ...
- 将String类型的二维数组中的元素用FileOutputStream的write方法生成一个文件
将String类型的二维数组中的元素用FileOutputStream的write方法生成一个文件import java.io.File;import java.io.FileOutputStre ...
- 功能要求:定义一个两行三列的二维数组 names 并赋值,使用二重循环输出二维数组中的元素。
功能要求:定义一个两行三列的二维数组 names 并赋值,使用二重循环输出二维数组中的元素 names={{"tom","jack","mike&qu ...
- 【LeetCode每天一题】Find First and Last Position of Element in Sorted Array(找到排序数组中指定元素的开始和结束下标)
Given an array of integers nums sorted in ascending order, find the starting and ending position of ...
- js向一个数组中插入元素的几个方法-性能比较
向一个数组中插入元素是平时很常见的一件事情.你可以使用push在数组尾部插入元素,可以用unshift在数组头部插入元素,也可以用splice在数组中间插入元素. 但是这些已知的方法,并不意味着没有更 ...
- Java如何删除数组中的元素?
Java中,如何删除数组元素? 示例 以下示例显示如何从数组中删除元素. package com.yiibai; import java.util.ArrayList; public class Re ...
- LeetCode 27 Remove Element (移除数组中指定元素)
题目链接: https://leetcode.com/problems/remove-element/?tab=Description Problem : 移除数组中给定target的元素,返回剩 ...
随机推荐
- Render Texture
[Render Texture] Render Textures are special types of Textures that are created and updated at runti ...
- centos7 安装VMware Tools 遇到的一系列问题的解决方案
先部署源:http://www.cnblogs.com/jiu0821/p/8074463.html VMware Tools安装方法参考:http://www.cnblogs.com/jiu0821 ...
- 关于使用PL/SQL连接本地oracle时报错:ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务解决
转自:https://blog.csdn.net/a657281084/article/details/49490069 问题:Oracle主服务和监听器服务已经启动,使用SQL Plus能够正常连接 ...
- Struts2概述
-------------------siwuxie095 Struts2 概述 1.Struts2 是应用在 Java EE 三层架构中的 Web 层的框架 2.Struts2 是在 Struts1 ...
- code1319 玩具装箱
一个划分dp,不过由于划分个数任意,仅用一维数组就可以 设dp[i]表示前i个装箱(任意个箱子)的费用最小值 dp[i]=min(dp[u]+cost(u+1,i)) 但是n<=50000,n方 ...
- octomap相关
转载自http://blog.csdn.net/linuxarmsummary/article/details/50924947 什么是octomap? RGBD SLAM的目的有两个:估计机器人的轨 ...
- dapper利用DynamicParameters构建动态参数查询
public static int GetTotalLogin(string username,DateTime start, DateTime end) { using (var _connecti ...
- Params应用
有时候我们要想传递可变数量的参数改怎么办??Params给我们提供了一个很好的方法 Parmas: 1.只运用方法的最后一位参数 2.这个参数只能标志任意类型的一位数组 3.添加了params这个参数 ...
- 手机SLAM开发
...惯性定位 由简入繁 保留JPG文件. 回环 建模
- 编写高质量代码改善C#程序的157个建议——建议105:使用私有构造函数强化单例
建议105:使用私有构造函数强化单例 单例指一个类型只生成一个实例对象.单例的一个简单实现如下所示: static void Main(string[] args) { Singleton.Insta ...