对数组中的元素进行排序。 此方法按 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. SSH(安全协议外壳)介绍及Linux SSH免密登录

    SSH(安全外壳协议) SSH 为 Secure Shell 的缩写,是一种网络安全协议,专为远程登录会话和其他网络服务提供安全性的协议.通过使用 SSH,可以把传输的数据进行加密,有效防止远程管理过 ...

  2. 825. Friends Of Appropriate Ages有效的好友请求的数量

    [抄题]: Some people will make friend requests. The list of their ages is given and ages[i] is the age ...

  3. ubuntu下搭建android开发环境

    注意: google可能被和谐了,那就修改hosts sudo vim /etc/hosts 增加: #Google主页 203.208.46.146 www.google.com #这行是为了方便打 ...

  4. 洛谷 P3627 [APIO2009](抢掠计划 缩点+spfa)

    题目描述 Siruseri 城中的道路都是单向的.不同的道路由路口连接.按照法律的规定, 在每个路口都设立了一个 Siruseri 银行的 ATM 取款机.令人奇怪的是,Siruseri 的酒吧也都设 ...

  5. [Jenkins] 全局变量

    http://www.360doc.com/content/14/1110/10/7811581_423993429.shtml https://wiki.jenkins.io/display/JEN ...

  6. 大数据时代,Python是最好的语言!

    随着大数据疯狂的浪潮,新生代的工具Python得到了前所未有的爆发.简洁.开源是这款工具吸引了众多粉丝的原因.目前Python最热的领域,非数据分析和挖掘莫属了.从以Pandas为代表的数据分析领域开 ...

  7. 设计模式(java)--模版方法模式之任务分配

    转自:http://blog.csdn.net/zhengzhb/article/details/7405608 定义:定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构 ...

  8. JS和DOM的关系

    DOM对象 DOM实际上是以面向对象方式描述的文档模型.DOM定义了表示和修改文档所需的对象.这些对象的行为和属性以及这些对象之间的关系. 根据W3C DOM规范,DOM是HTML与XML的应用编程接 ...

  9. javascript总结37:DOM:innerText 和 innerHTML

    innerText 和 innerHTML 作用: 给双标签的元素设置内容/获取双标签里面的内容 不同点: innerText 只是用于获取文本或设置文本 innerHTML 不仅可以用于设置/获取文 ...

  10. bt协议详解 基础篇(下)

    bt协议详解 基础篇(下) 最近开发了一个免费教程的网站,产生了仔细了解bt协议的想法,所以写了这一篇文章,后续还会写一些关于搜索和索引的东西,都是在开发这个网站的过程中学习到的技术,敬请期待. 1 ...