对数组中的元素进行排序。 此方法按 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()的方法的更多相关文章

  1. Java比较两个数组中的元素是否相同的最简单方法

    import java.util.Arrays; public class Test { /** * Java比较两个数组中的元素是否相同 */ public static void main(Str ...

  2. 数组中的元素 增加push用法 unshift() 方法 和减少pop() 方法 shift() 和其他位置增删 splice() 方法 join() 方法 reverse() 方法 sort() 方法

    push用法 push 英 [pʊʃ] 美 [pʊʃ] vt. 推,推动; vt. 按; 推动,增加; 对…施加压力,逼迫; 说服; n. 推,决心; 大规模攻势; 矢志的追求 定义和用法 push( ...

  3. 面试题-->写一个函数,返回一个数组中所有元素被第一个元素除的结果

    package com.rui.test; import java.util.Random; /** * @author poseidon * @version 1.0 * @date:2015年10 ...

  4. 将String类型的二维数组中的元素用FileOutputStream的write方法生成一个文件

      将String类型的二维数组中的元素用FileOutputStream的write方法生成一个文件import java.io.File;import java.io.FileOutputStre ...

  5. 功能要求:定义一个两行三列的二维数组 names 并赋值,使用二重循环输出二维数组中的元素。

    功能要求:定义一个两行三列的二维数组 names 并赋值,使用二重循环输出二维数组中的元素 names={{"tom","jack","mike&qu ...

  6. 【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 ...

  7. js向一个数组中插入元素的几个方法-性能比较

    向一个数组中插入元素是平时很常见的一件事情.你可以使用push在数组尾部插入元素,可以用unshift在数组头部插入元素,也可以用splice在数组中间插入元素. 但是这些已知的方法,并不意味着没有更 ...

  8. Java如何删除数组中的元素?

    Java中,如何删除数组元素? 示例 以下示例显示如何从数组中删除元素. package com.yiibai; import java.util.ArrayList; public class Re ...

  9. LeetCode 27 Remove Element (移除数组中指定元素)

    题目链接: https://leetcode.com/problems/remove-element/?tab=Description   Problem : 移除数组中给定target的元素,返回剩 ...

随机推荐

  1. Miller-Rabin算法

    Miller-Rabin算法用于检测一个数n是否是素数.其时间复杂度上界为O(klog2(n)),其中k为检测的轮数.增大k可以提高Miller-Rabin算法的准确度. 要检测一个数是否为素数,简单 ...

  2. 使用CreateJS绘制数字盒子

  3. MySQL 基础常用命令

    一.启动与关闭 1.1 Linux下启动mysql 的命令: a. rpm包安装:service mysqld start b. 源码包安装:/usr/local/mysql/bin/mysqld_s ...

  4. activeMQ集群搭建及高可用

    三台服务器搭建如下的集群,达到了高可用.也同时达到了负载的目的: /****************************************************************** ...

  5. (转)Android SDK Manager国内无法更新的解决方案

    转载地址:http://www.linuxidc.com/Linux/2015-01/111958.htm 现在由于GWF,google基本和咱们说咱见了,就给现在在做Android  或者想学习An ...

  6. [C++] const object

    const  object const 对象只能调用const函数 const函数不能改变一般成员变量的值,但是mutable的变量不受限制

  7. Photo1

    Story: 想象你是一个乡村的孩子,你有着健康的肤色,正在和家人一起坐在颠簸的马车上,赶着去城里买东西.正值夏日,黄昏的阳光晒在你的脸上,于是你的脸显得红扑扑的.路上满满的都是葱绿的草和参差不齐的树 ...

  8. myeclipse快捷键记忆

    提示 Alt+?自动排版 Ctrl+shift+f自动添加引入包 Ctrl+shift+O切换窗口 Ctrl+F6自动添加set get方法 Alt+shift+s r 查看都是哪里调用了该方法 Ct ...

  9. 去除SVN图标并解除svn控制 (转)

    今天一不小心把F盘弄成了SVN管理项目,结果如图: 看到这个,当场晕菜,经过不懈的努力终于找到一种方法,如下: 右键  ===>TortoiseSVN   ===>Settings 点击确 ...

  10. xampp 添加ssl 访问

    编辑php.ini 文件,找到 “;extension=php_openssl.dll” (去掉前面的;号注释) <VirtualHost *:8090> DocumentRoot &qu ...