很难的一个程序,高手来看看!

ruoruo_is_me 2008-09-23 02:18:35
很难的一个程序,高手来看看!
var names:Array=new Array["John Q.Smith","Jane Doe","Mike Jones"];
function orderLastName(a,b):int
{
var lastName:RegExp=/\b\S+$/; //这句是什么意思?
var name1=a.match(lastName); //a和b都代表什么意思?match是什么?
var name2=b.match(lastName);
if (name1<name2)
{
return -1; //为什么要加返回值?返回值表示什么?有什么意义?
}else if (name1>name2)
{
return 1;
}else
{
return 0;
}
}
names.sort(orderLastName);
trace(names);
//输出:Jane Doe,Mike Jones,John Q.Smith

这是我看到的一个程序,不是很明白,各位高手帮我解释一下程序,谢了 !
...全文
72 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ruoruo_is_me 2008-09-25
  • 打赏
  • 举报
回复
就是这个正则表达式不明白?高手解释一下,就当解个闷!
h_w_king 2008-09-24
  • 打赏
  • 举报
回复
关于正则式,lz还是看看相关资料,因为我也不知道该怎么来说.
a,b 是传入orderLastName的参数,在这里就是Array数组的元素.
当执行names.sort(orderLastName) 时,它会把names中的元素每两个两个传入orderLastName,以确定它们谁在谁小.
ruoruo_is_me 2008-09-23
  • 打赏
  • 举报
回复
RegExp=/\b\S+$/;我知道是正则表达式,为什么是返回姓,而不是名字?高手,解释一下
ruoruo_is_me 2008-09-23
  • 打赏
  • 举报
回复
RegExp=/\b\S+$/;我知道是正则表达式,帮忙解释一下啊,谢了,高手 a,b是什么?是设的两个字符串吗?解释一下
h_w_king 2008-09-23
  • 打赏
  • 举报
回复
var lastName:RegExp=/\b\S+$/; //设置一个正则表达式,
var name1=a.match(lastName); //用设置的正则表达式来匹配字符串.
为什么要加返回值?返回值表示什么?有什么意义
  为了实现对字符串数组的排序,就必须告知排序的规则.
其实这里的orderLastName实际是定义了排序的规则,即比较两个数据的大小(也就是排序的前后)的规则.返回-1表示前一个比后一个小(即第一个在前,第二个在后),返回1表示前一个比后一个大.0则两个相等.


names.sort(orderLastName); //实现排序,

 

2,275

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计/Flash/Silverlight 开发 Flash流媒体开发
社区管理员
  • Flash流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧