[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的元素,返回剩 ...
随机推荐
- 返回JSON到前台的对象属性设置
1.项目中使用JSON的第三方架包:jackson-annotations-2.8.0.jar 2.可以将对象的属性返回进行相应的处理 比如格式化时间.密码敏感等属性 如:User.java pack ...
- extends注意事项
属性可以在子类中被调用,而局部变量不可以
- 前台的json数组转化为List<T>集合
using System;using System.Collections.Generic;using System.Linq;using System.Runtime.Serialization;u ...
- mybatis :xml文件中传入参数和if标签结合使用时要点
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.Reflecti ...
- jar包打包成exe示例(基于maven项目)
jar包打包成exe示例(基于maven项目) 说明 针对基于maven的Java项目,通常会打包成jar, 如果要把jar文件包装成exe文件,仅需要在pom.xml配置文件中增加一个插件即可 这里 ...
- Web实践—Rec 1
累计完成任务情况: 阶段内容 参与人 开会学习作业要求,取得共识 全体 注: 1."阶段内容"划斜线表示完成.2.采用倒序. 具体情况: 正式开展实践作业之前的说明: 按照之前达成 ...
- javascrip总结42:属性操作案例: 点击盒子,改变盒子的位置和背景颜色
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8& ...
- Open Type vs Open resource
Open Type 可查询所有java 类型,包括.java .class Open Resource 只能打开 .java 等 ,不能打开 .class 相同点 都可以使用 ? * 通配符
- unity 小地图的制作
利用 Transform.InverseTransformDirection 变换位置从世界坐标到自身坐标. 以第一人称控制器为坐标原点(忽视y轴),x轴z轴转为屏幕坐标. 若物体在地图范围外,可以 ...
- 重叠io操作
第一章 一. 重叠模型的优点 1. 可以运行在支持Winsock2的所有Windows平台 ,而不像完成端口只是支持NT系统. 2. 比起阻塞.select.WSAAsyncSelect以及WSAEv ...