对数组中的元素进行排序。 此方法按 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. 解剖Nginx·模块开发篇(1)跑起你的 Hello World 模块!

    1 学习 Nginx 模块开发需要有哪些准备? 需要的预备知识不多,有如下几点: 有过一些 C 语言的编程经历: 知道 Nginx 是干嘛的,并有过编写或改写 Nginx 的配置文件的经历. OK,就 ...

  2. alinode 配置 pm2

    今天公司要配置阿里的一个node.js性能监控(alinode),这个东西看似配置很简单但是你不知道你配置对没对, 因为他需要1分钟后才能显示出来,而且模块依赖我等了10分钟才出来, 文档的链接htt ...

  3. Dell 1420N使用Kubuntu默认无线驱动后网络不稳定的解决方法

    前几天在我的Dell 1420N上安装了Kubuntu 13.04,装了系统软件中的私有无线网卡驱动Broadcom STA wireless driver后,虽然能上网,但是很不稳定,经常断线,非常 ...

  4. pkg-config的妙用

    1.每个lib下都会有个pkg-config文件夹,里面有相应pc文件 修改里面内容可以改变pkg-config显示 2.将.pc文件所在路径添加到PKG_CONFIG_PATH中如: export ...

  5. 为什么丑陋的UI界面却能创造良好的用户体验?

    本文内容由Mockplus团队翻译. 官网:http://www.mockplus.cn 网站界面过于漂亮可能会影响网站的可用性,但本文中提到的5个网站界面可谓是“丑”出了新高度.这样的网站它还有可用 ...

  6. easyui combogrid 下拉框 智能输入

    1. 后台代码 using System;using System.Collections;using System.Collections.Generic;using System.Linq;usi ...

  7. 白盒测试实践-任务进度-Day02

    所使用静态代码检查工具 阿里巴巴Java开发代码检测IDE插件 小组成员 华同学.郭同学.覃同学.刘同学.穆同学.沈同学 任务进度 在经过任务分配阶段后,大家都投入到了各自的任务中,以下是大家今天任务 ...

  8. Spring框架总结(六)

    注解 注解方式可以简化spring的IOC容器的配置! 使用注解步骤: 1)先引入context名称空间 xmlns:context="http://www.springframework. ...

  9. OpenCV4Android安装

    转:http://blog.csdn.net/gao_chun/article/details/49359535 1.下载及目录介绍 2.将 OpenCV引入 Android Studio 3.更新 ...

  10. linux安装x264 ffmpeg

    1. 安装yasm 2. 安装x264 3. 安装ffmpeg 安装网上很多例子,以下是我主要参考的两篇博客: http://www.cnblogs.com/lidabo/p/3987378.html ...