博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript-Array类型 二
阅读量:5970 次
发布时间:2019-06-19

本文共 1709 字,大约阅读时间需要 5 分钟。

五、排序

  I、反转数组

1 var nums = [1,2,3,4,5,6];2 nums.reverse();3 alert(nums); //弹出"6,5,4,3,2,1"字符串

 II、通过对比排序

var nums = [2,3,5,6,1,4];nums.sort();alert(nums); //弹出"1,2,3,4,5,6"字符串

除了直接调用"sort"之外,还可以传递一个对比的函数作为参数。如下所示:

1 var nums = [2,3,5,6,1,4];2 nums.sort(function(value1,value2) {3      return value2 - value1;4 });5 alert(nums); //弹出"6,5,4,3,2,1" 字符串

这里我传递了一个为"return value2 - value1"的对比函数。说简单点就是将数组从大到小排序。如果改成"return value1 - value2"就会变成从小到大排序。

 六、查找数据索引

 I、正序查找数据

  如果读者很细心,一定会发现如果同一个数据在数组中有多个怎么办。但是这里的方法是可以解决这个问题的(不是将所有符合的数据的索引变成数组返回)。

1 var nums = [1,2,3,4,5,1,2];2 var sindex = nums.indexOf(2);3 alert(sindex); // 弹出"1" 表示在索引为1的位置

这里大家一定会看到只返回的第一个找到的符合的数据的索引,并没有返回另一个符合的数据的索引。

这时我们还想找到后续的符合的数据的索引,只要在上面的代码下添加如下的代码:

1 sindex = nums.indexOf(sindex,2);2 alert(sindex); //弹出 "6" 这个是第二个"2"的索引位置

 如果读者有兴趣可以编写一个递归来实现将所有符合数据的索引组织成数组返回。

 II、反序查找数据

 这里的反序就是从数组的最后一个数据开始向前找

1 var nums = [1,2,3,4,5,1,2];2 var sindex = nums.lastIndexOf(2);3 alert(sindex); //弹出 "6" 因为是从后向前找

 其他的就跟正序差不多相同,只是在继续查找下一个时是"sindex-1"而不是"sindex+1"了

七、缩小方法

  I、正序缩小

1 var nums = [1,2,3,4,5];2 var sum = nums.reduce(function(pre,cur,index,object){3                            return pre + cur;4                });5 alert(sum); //弹出"15" 计算方式为:1+2+3+4+5

 其实这种方法的原理很简单,第一个调用函数时"pre"的值为1,"cur"的值为2。返回3。第二次的"pre"的值为3,"cur"的值为3,返回6。以此类推,最终算得15。

 II、反序缩小

 其实就是从后向前的方式。规律还是上面的一样。

1 var nums = [1,2,3,4,5];2 var sum = nums.reduceRight(function(pre,cur,index,obj){3                             return pre + cur;4                });5 alert(sum); //弹出"15"

 八、其他方法

  js3 判断变量是否为Array类型

1 var obj = new Array();2 if( obj instanceof Array ){3    //do some thing4 }

 js5判断变量是否为Array类型

1 var obj = new Array();2 if(Array.isArray(obj)){3     /do some thing4 }

 到此为止,关于Array类型的学习结束了。

转载地址:http://okwox.baihongyu.com/

你可能感兴趣的文章
基于开源技术的上网行为管理实现方案
查看>>
Python学习笔记四(Python OS模块)
查看>>
Google Glass是工具不是玩具
查看>>
f_bfree和f_bavail的区别
查看>>
linux awk命令详解,使用system来内嵌系统命令,批量github,批量批下载视频, awk合并两列...
查看>>
关于微信 setData 回调函数中的坑
查看>>
151. Reverse Words in a String
查看>>
区块链组织-超级账本(Hyperledger)的简介
查看>>
附实例!图解React的生命周期及执行顺序
查看>>
《从0到1学习Flink》—— Flink 读取 Kafka 数据批量写入到 MySQL
查看>>
css实现图片自适应容器的几种方式
查看>>
https的那些事儿
查看>>
CentOS7.5常用命令整理
查看>>
hostingranking.cn·基于ghost的轻量技术架构整理
查看>>
DOM的那些事
查看>>
Angular和SAP C4C的事件处理队列
查看>>
使用shouldComponentUpdate进行性能优化
查看>>
CSS导航条菜单:带小三角形
查看>>
matplotlib嵌入到pyqt中
查看>>
浅析面向对象开发
查看>>