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方法——如果没有为该方法传递任何参数,那么其默认的数组元素分割符为英文逗号;如果为该方法传递了参数,那么数组元素分割符为所传递参数指定的分割符;

JavaScript数组的某些操作(二)相关推荐

  1. javascript数组的各种操作

    用 js有非常久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目,用到数组的地方非常多,自以为js高手的自己竟然无从下手,一下狠心,我学 ...

  2. JavaScript(数组)六

    1.什么是数组? 数组就是专门用于存储一组数据的 注意点: 和我们前面学习的Number/String/Boolean/Null/undefined不同(基本数据类型) 而我们今天学习的数组(Arra ...

  3. Javascript数组操作(转)

    1.数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限, ...

  4. Javascript数组操作

    使用JS也算有段时日,然对于数组的使用,总局限于很初级水平,且每每使用总要查下API,或者写个小Demo测试下才算放心,一来二去,浪费不少时间:思虑下,堪能如此继续之?当狠心深学下方是正道. 原文链接 ...

  5. javaScript数组操作--有道笔记整理

    javascript之数组操作 1.数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一 ...

  6. 史上最全JavaScript数组对象详解(二)

    JavaScript数组对象详解(二) 上一篇博客我们讲到了JavaScript数组对象的创建,访问和属性,接下来一篇博客主要讲一下JavaScript数组对象的方法及使用.说到数组的方法,主要分为两 ...

  7. Java中Arrays.toString ()打印二维数组及Array数组的常用操作

    1.Java中Arrays.toString () 已知打印一维数组的API为System.out.println ( Arrays.toString ();,其参数为数组名或数组指针,其支持的数据类 ...

  8. php 空二位数组,php对二维数组进行相关操作(排序、转换、去空白等),php二维数组_PHP教程...

    function printr($arr) { echo ''; print_r($arr); echo ' '; } 第一组 :sort 和 rsort,按照PHP数组键值的顺序asc和逆序desc ...

  9. java中数组的返回值是什么类型_java基础学习:数组的常用操作与基础二维数组用法、及基本数据类型和引用数据类型赋值的区别...

    一.Arrays jdk中为了便于开发,给开发者提供了Arrays类,其中包含了很多数组的常用操作.例如快速输出.排序.查找等. 1.数组的常用方法 1.数组以字符串形式的输出,2.sort对数组排序 ...

  10. php 读取mysql 二维数组_PHP操作 二维数组模拟mysql函数

    PHP操作 二维数组模拟mysql函数 public function monimysqltest(){ $testarray=array( array('ss'=>'1','dd'=>' ...

最新文章

  1. 在多台FMS服务器之间共享流
  2. 罗念梓(帮别人名字作诗)
  3. 美国星巴克肯德基明年将支持Apple Pay
  4. 使用OpenSSL实现证书操作
  5. 分类9个无理数并比较他们之间的分布差异
  6. Re:从零开始的Spring Session(二)
  7. scp命令 – 远程拷贝文件
  8. 利用CSS的三列等高布局
  9. Linux——安全权限(禁止添加新用户+umask值+修改默认密码最长有效期)
  10. 《Thinking in java》 读了个开头
  11. AddLinkedServer
  12. 就业协议中的服务器是什么,关于就业协议,你必须知道的
  13. 鸿蒙移植stm32,韦东山老师要移植鸿蒙的那个STM32MP157具体是什么?
  14. EasyUI中的combobox下拉框自适应高度
  15. 数据结构--数组+链表实现哈希表
  16. Exchange 2013学习(九),Autodiscover
  17. 【亲测可行】SVN的添加忽略
  18. 该虚拟机似乎正在使用中。如果该虚拟机未在使用,请按“获取所有权(T)”按钮获取它的所有权
  19. 微信公众号上传永久图片素材
  20. vue生成app二维码,并扫码下载app

热门文章

  1. 【NOIP2015】运输计划
  2. ORACLE11G常用函数
  3. 失败的人只有一种,就是在抵达成功之前放弃的人
  4. 14个新鲜的免费图标集
  5. P3211 [HNOI2011]XOR和路径
  6. Unity3d中使用自带动画系统制作下雨效果(二)
  7. 使用RabbitMQ做的一些工作及经验教训
  8. windows 不能确定用户和计算机名称
  9. HibernateTemplate.save()与HibernateTemplate.update() 无法写入数据库的问题
  10. VirtualBox安装Mac OS引导盘启动不了原因