javascript-Array类型 二
2013-02-26 11:06 y-z-f 阅读(186) 评论(0) 编辑 收藏 举报五、排序
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 thing 4 }
js5判断变量是否为Array类型
1 var obj = new Array(); 2 if(Array.isArray(obj)){ 3 /do some thing 4 }
到此为止,关于Array类型的学习结束了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?