7、颠倒数组中元素的顺序(注意:不是为数组排序)——reverse方法

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>颠倒数组中元素的顺序</title>
<script type="text/javascript">
var intArray = [1,5,3,0];
intArray.reverse();
for(var intIndex in intArray){
console.log(intArray[intIndex]);
}
</script>
</head>
<body>
</body>
</html>

说明:for循环依次输出:0 3 5 1;

8、数组的排序——sort方法

注意:该方法能够传递一个自己定义的排序方法的方法名,假设不传參数那么数组将按字母顺序升序排列(即依照字符编码的顺序进行升序排序),这时假设要进行数字的排序。则会出现“意想不到”的效果,看例如以下代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>数组的排序——对字母字符的排序</title>
<script type="text/javascript">
var charArray = ["a","z","g","r"];
charArray.sort();
for(var charIndex in charArray){
console.log(charArray[charIndex]);
}
</script>
</head>
<body>
</body>
</html>

说明:for循环依次输出:a g r z。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<head>
<meta http-equiv="Content-Type" content="text/html; intset=UTF-8" />
<title>数组的排序——对数字的排序</title>
<script type="text/javascript">
var intArray = ["10", "5", "40", "25", "1000", "1"];
intArray.sort();
for(var intIndex in intArray){
console.log(intArray[intIndex]);
}
</script>
</head>
<body>
</body>
</html>

说明:for循环依次输出:1 10 1000 25 40 5。

        小结:对照上面两段代码不难发现没有參数的sort方法在对数字类型的数组排序时是起不到排序效果的(呵呵呵。有人可能会想:我假设把上面代码中数字数组元素改成“var intArray = [10, 5, 40, 25, 1000, 1];”应该就能够了吧,嗯嗯嗯,你想的非常周到,但是事实是这样也不行),假设要实现对数字数组的排序代码应该这样写:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<head>
<meta http-equiv="Content-Type" content="text/html; intset=UTF-8" />
<title>数组的排序——对数字的排序</title>
<script type="text/javascript">
function compareTo(a,b){
return a - b;
}
var intArray = ["10", "5", "40", "25", "1000", "1"];
intArray.sort(compareTo);
for(var intIndex in intArray){
console.log(intArray[intIndex]);
}
</script>
</head>
<body>
</body>
</html>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<head>
<meta http-equiv="Content-Type" content="text/html; intset=UTF-8" />
<title>数组的排序——对数字的排序</title>
<script type="text/javascript">
var intArray = ["10", "5", "40", "25", "1000", "1"];
intArray.sort(function(a,b){return a - b;});
for(var intIndex in intArray){
console.log(intArray[intIndex]);
}
</script>
</head>
<body>
</body>
</html>

说明:for循环依次输出:1 5 10 25 40 1000;

对照较函数參数的说明:假设想依照自己定义的排序规则排序,就须要提供比較函数。该函数须要传入两个參数(常命名为 a
和 b)并返回一个用于说明这两个值的相对顺序的数字。其返回值例如以下:

1)、若 a 小于 b,在排序后的数组中 a 应该出如今 b 之前,则返回一个小于 0 的值。

2)、若 a 等于 b,则返回 0。

3)、若 a 大于 b,在排序后的数组中
a 应该出如今 b 之后,则返回一个大于 0 的值。

对于数组排序言尽于此,不知道大家有没有留意到对中文字符的排序——上面阐述了对字母和数字的排序。sort对中文的排序怎么样呢?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>数组的排序——对中文字符的排序</title>
<script type="text/javascript">
var charArray = ["中","啊","家","高"];
charArray.sort();
for(var charIndex in charArray){
console.log(charArray[charIndex]);
}
</script>
</head>
<body>
</body>
</html>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>数组的排序——对中文字符的排序</title>
<script type="text/javascript">
var charArray = ["中","啊","家","高"];
charArray.sort(function(a,b){return a - b;});
for(var charIndex in charArray){
console.log(charArray[charIndex]);
}
</script>
</head>
<body>
</body>
</html>

说明:上面两个代码片段中的for循环输出的结果是一样的——依次输出:中 啊 家 高;

小结:从输出结果能够发现上面代码对中文的排序是错误的。那么怎样实现对中文的排序呢,请看以下代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>数组的排序——对中文字符的排序</title>
<script type="text/javascript">
var charArray = ["中","啊","家","高"];
charArray.sort(function(a,b){return a.localeCompare(b);});
for(var charIndex in charArray){
console.log(charArray[charIndex]);
}
</script>
</head>
<body>
</body>
</html>

说明:上面for循环依次输出:啊 高 家 中;这才是我们想要的结果

小结:假设要实现中文字符的排序还是要借助sort方法,可是排序比較方法中使用的是localeCompare方法,该方法也会返回一个用于说明这两个值的相对顺序的数字。其返回值例如以下:

1)、若 a 小于 b。在排序后的数组中 a 应该出如今 b 之前。则返回一个小于 0 的值。

2)、若 a 等于 b,则返回 0。

3)、若 a 大于 b。在排序后的数组中 a 应该出如今 b 之后,则返回一个大于 0 的值。

9、将数组中的元素转换为以特定字符切割的字符串——join方法

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>将数组中的元素转换为以特定字符切割的字符串——以英文逗号分隔</title>
<script type="text/javascript">
var nameArray = ["陈洪涛","李小宁","吴思娣"];
var nameString = nameArray.join();
console.log(nameString);
</script>
</head>
<body>
</body>
</html>

说明:控制台输出的结果为:陈洪涛,李小宁,吴思娣

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>将数组中的元素转换为以特定字符切割的字符串——以中文逗号分隔</title>
<script type="text/javascript">
var nameArray = ["陈洪涛","李小宁","吴思娣"];
var nameString = nameArray.join("。");
console.log(nameString);
</script>
</head>
<body>
</body>
</html>

说明:控制台输出的结果为:陈洪涛。李小宁,吴思娣

小结:通过上面两段代码我们能够更深层此的理解join方法——假设没有为该方法传递不论什么參数,那么其默认的数组元素切割符为英文逗号。假设为该方法传递了參数。那么数组元素切割符为所传递參数指定的切割符;

最新文章

  1. centos系统/etc/sysconfig/目录下无iptables文件
  2. FTP连接时出现“227 Entering Passive Mode” 的解决方法
  3. MySQL环境部署
  4. [TCPIP]代理arp
  5. JAVA基础知识之网络编程——-基于AIO的异步Socket通信
  6. XAML(4) - 标记扩展
  7. What does addScalar do?
  8. CentOS 6.4编译安装淘宝web服务器Tengine
  9. smtp协议
  10. Python发一个GET请求
  11. 【Socket规划】套接字Windows台C语言
  12. mysql char varchar 区别
  13. 勤拂拭软件系列教程 之 Android开发之旅
  14. NOIP2018提高组初赛知识点
  15. Oracle不连续的值,如何实现查找上一条、下一条
  16. WEBBASE篇: 第七篇, JavaScript知识1
  17. djang 过滤器和装饰器
  18. .sh_history文件的管理机制
  19. Docker原生网络技术简介
  20. php 安全模式限制函数

热门文章

  1. 可以通过shadowserver来查看开放的mdns(用以反射放大攻击)——中国的在 https://mdns.shadowserver.org/workstation/index.html
  2. matlab2017a doc 关联注册码
  3. [洛谷P1169] [ZJOI2007] 棋盘制作 解题报告(悬线法+最大正方形)
  4. luogu 3393 逃离僵尸岛
  5. BZOJ 2424 DP OR 费用流
  6. realm怎样支持hashmap
  7. 每位 Ubuntu 18.04 用户都应该知道的快捷键
  8. nginx直接连接操作memcache
  9. kubernetes学习与实践篇(一)主要概念介绍
  10. perl模块