js中关于array的slice和sort方法(转自JavaEye)
一、array.slice(start, end) 方法:
slice()是用来截取数组中的一部分,用它来复制数组,如果省略了end参数,则切分的数组包含从start开始到数组结束的所有元素。
现在要用它来复制数组,就一行:
其他说明:
1. 如果 start 为负,将它作为 length + start处理,此处 length 为数组的长度,比如a.slice(-3,4),相当于a.slice(2,4)。
2. 如果 end 为负,就将它作为 length + end 处理,此处 length 为数组的长度,比如a.slice(0,-1)。
3. 如果省略 end ,那么 slice 方法将一直复制到源数组结尾,比如a.slice(1)。如果 end 出现在 start 之前,不复制任何元素到新数组中,比如a.slice(4,3)。
4.对于字符串,也有slice(start,end)方法。
二、array.sort() 方法:
默认的sort()按字符编码排序的:
code1:
testArray.sort();
alert(testArray);
输出结果是:134 3 324 5345 5654 6546 665
按大小排序:
testArray.sort(function(a,b){return a-b;});
alert(testArray);
这里传递一个比较函数给sort,比较函数的逻辑是:如果两参数的差值小于0,则表示a必须出现在b前面,否则在b后面。输出结果是:
输出结果是:3 134 324 665 5345 5654 6546,
补充:对多维数组的排序:
[2,1,55,4],
[5,3,22,3],
[1,2,77,2],
[9,4,33,5],
];
alert("默认按第一列排\n"+arr.sort().join("\n"))
alert("现在按第三列排\n"+arr.sort(function(left,right){return left[2]>right[2]?1:-1}).join("\n"))
alert("现在按第三列倒排\n"+arr.sort(function(left,right){return left[2]>right[2]?-1:1}).join("\n"))
//说明:alert(arr.sort(function(left,right){return left>right?-1:1}))
//这里,sort方法通过参数函数的返回值 1或者-1来决定是顺排还是倒排
转载于:https://blog.51cto.com/tscfengkui/684209
js中关于array的slice和sort方法(转自JavaEye)相关推荐
- JS中数组(Array)、Json对象长度(length)获取方法
JS中数组(Array).Json对象长度(length)获取方法 1.数组 var array = []; var length = array.length; 2.JSON对象 1)方法1: va ...
- 开发chrome 插件, background.js中 console log 看不到解决方法
开发chrome 插件, background.js中 console log 看不到解决方法 参考文章: (1)开发chrome 插件, background.js中 console log 看不到 ...
- vue watch 修改滚动条_Vue.js 中滚动条始终定位在底部的方法
Vue.js 中滚动条始终定位在底部的方法 发布于 2020-2-23| 复制链接 分享一篇关于vue 中滚动条始终定位在底部的方法,具有很好的参考价值,希望对大家有所帮助.一起跟随小妖过来看看吧 滚 ...
- new Date将字符串转化成日期格式 兼容IE,ie8如何通过new Date将字符串转化成日期格式,js中如何进行字符串替换, replace() 方法详解
new Date将字符串转化成日期格式 兼容IE,ie8如何通过new Date将字符串转化成日期格式,js中如何进行字符串替换, replace() 方法详解 //获得年月日时分秒 //传入日期// ...
- [转] 理解 JavaScript 中的 Array.prototype.slice.apply(arguments)
假如你是一个 JavaScript 开发者,你可能见到过 Array.prototype.slice.apply(arguments) 这样的用法,然后你会问,这么写是什么意思呢? 这个语法其实不难理 ...
- js中的数组和字符串的一些方法
数组的一些方法: 1.join()和split()方法 <script type="text/javascript"> var x; var a=new Array() ...
- js中判断数据类型的几种实用方法
前言 最近项目中有不少地方需要判断数据类型,但是判断数据类型也有好几种方法,并且每种方法判断的数据类型也有局限性,所以想总结一下,方便以后查阅. 分别是 typeof ,instanceof,Obje ...
- JS中的call、apply、bind方法详解
bind 是返回对应函数,便于稍后调用:apply .call 则是立即调用 . apply.call 在 javascript 中,call 和 apply 都是为了改变某个函数运行时的上下文(co ...
- js中几种实用的跨域方法原理详解
这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被 ...
最新文章
- 问题集锦(30-35)
- Python 解决写入csv中间隔一行空行问题
- 活动目录系列之一:基本概念
- 交叉驰豫的影响因素_什么因素影响了软管总成的质量?
- Self Crossing
- php strtotime month bug,处理PHP strtotime的BUG
- 22 CO配置-控制-产品成本控制-成本对象控制-检查制造订单 (PP) 的评估变式
- python入门第八章 商品数量检测 头像格式检测
- Ubuntu18.04快捷键
- Tensorflow 获取model中的变量列表,用于模型加载等
- 三菱MX Component通信应用
- 打印机出现另存为xps_共享打印机打印出现另存为*.xps,现把打印机驱动改成打印机的型号,可客户机还是打...
- 手机mstsc远程工具_如何通过手机远程控制计算机
- 【C++OJ多重继承与虚拟继承】商旅信用卡(多重继承)
- 爬虫:信息提取的一般方法
- 「镁客·请讲」易瞳科技梁剑泓艾韬:未来MR会把VR和AR融合在一起
- HDU 2838 Cow Sorting(双树状数组+求逆序数)
- Sencha Touch框架介绍
- HTML5教程8-视频
- java用浏览器下载文件_JAVA读取文件流,设置浏览器下载或直接预览操作
热门文章
- Pokémon Go火遍全球,开启全民捕捉小精灵的时代
- spring加载配置文件
- App-V5.0服务器部署
- 它是最神秘的黑客组织:来自战斗民族 专黑美国
- HTTP权威指南阅读笔记一:HTTP概述
- CBO Cost Formulas基于成本优化器的成本计算公式大全
- 配置和使用OCS 2007会议功能
- Flink SQL Client进行Kafka事实表与Hbase维度表Join(纯DDL/SQL方式)
- mysql8出现The MySQL server is running with the --skip-grant-tables option so it cannot execute
- C++ 线程池的思想