JavaScript Array对象的几个实例

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style type="text/css">
h3 {
    color:#09F;
}
</style>
</head>

<body>
<h3>join() </h3>
<script type="text/javascript">

var arr = new Array();
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] ="App"
document.write(arr  +arr);
document.write("<br />");
document.write(join()  +arr.join());
document.write("<br />");
document.write(join(".")  +arr.join("."));
document.write("<br />");
document.write(sort()  +arr.sort());
document.write("<br />");
document.write(join()  +arr.join());
document.write("<br />");
document.write(join(".")  +arr.join("."));
document.write("<br />");
document.write(join("*")  +arr.join("."));
document.write("<br />");
</script>
<p>&nbsp; </p>
<h3>sort() </h3>
<script type="text/javascript">

function sortNumber(a, b)
{
return a - b
}

var arr = new Array(6)
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000"
arr[5] = "1"

document.write( arr   + arr );
document.write("<br />");
document.write("<br />");
document.write("从字面上对数组进行排序");
document.write("<br />");
document.write(sort() +arr.sort());
document.write("<br />");
document.write("<br />"); //请注意,上面的代码没有按照数值的大小对数字进行排序,要实现这一点,就必须使用一个排序函数
document.write("从数值上对数组进行排序");
document.write("<br />");
document.write(sort(sortNumber) +arr.sort(sortNumber))
document.write("<br />");
</script>
</body>
</html>

ps:难点——比较函数

1
2
3
4
5
6
function sortNumber(a, b)
{
return a - b
}
 
arr.sort(sortNumber)

-------引用w3cschool http://w3school.com.cn/js/jsref_sort.asp-----------

定义和用法

sort() 方法用于对数组的元素进行排序。

语法

arrayObject.sort(sortby)

参数 描述
sortby 可选。规定排序顺序。必须是函数。

返回值

对数组的引用。请注意,数组在原数组上进行排序,不生成副本。

说明

如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。

如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:

  • 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
  • 若 a 等于 b,则返回 0。
  • 若 a 大于 b,则返回一个大于 0 的值。

 -----摘自 http://bbs.csdn.net/topics/190034003          

                                  看过这个讨论,终于明白了这个问题--------

1
2
3
4
5
6
7
8
9
10
11
12
13
function sortNumber(a, b)
{
return a - b;
}
相当于
 
function sortNumber(a, b)
{
if (a>b)
return 正数;
else
return 非正数
}

 

Javascript数组 sort方法的分析 

csdn博客 责任编辑:龙犊

 

javascript 中 Array.sort()方法是用来对数组项进行排序的 ,默认情况下是进行升序排列,实例代码如下:

 

var arrA = [6,2,4,3,5,1];

arrA.sort();

document.writeln(arrA);

 //结果是:1,2,3,4,5,6

 

sort() 方法可以接受一个方法为参数 ,这个方法有两个参数。分别代表每次排序比较时的两个数组项。sort()排序时每次比较两个数组项都回执行这个参数,并把两个比较的数组项作为参数传递给这个函数。当函数返回值为1的时候就交换两个数组项的顺序,否则就不交换。

 

实例如下:

var arrA = [6,2,4,3,5,1];

/**//*arrA.sort();

document.writeln(arrA);

*/

function desc(x,y)

...{

if (x > y)

return -1;

if (x < y)

return 1;

}

function asc(x,y)

...{

if (x > y)

return 1;

if (x < y)

return -1;

}

arrA.sort(desc);    // sort by desc

document.writeln(arrA);

document.writeln("<br>");

arrA.sort(asc);    //sort by asc

document.writeln(arrA);

 

//输出结果:

6,5,4,3,2,1

1,2,3,4,5,6

另外,可以直接把一个无名函数直接放到sort()方法的调用中。如下的例子是将奇数排在前面,偶数排在后面,例子如下:

 

var arrA = [6,2,4,3,5,1];

arrA.sort( function(x, y) ...{

if (x % 2 ==0)

return 1;

if (x % 2 !=0)

return -1;

}

);

document.writeln(arrA);

 

//输出:1,5,3,4,6,2

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。