数组方法:排序和清空

<h1>数组清空</h1>
<p>我们知道javascript变量存储方式分为引用类型和直接量。数组属于对象,即引用类型,引用的是变量指针地址.</p>
<p>再说到下面的请空数组的方式,如果采用直接赋值一个新数组的方式,那么之前引用的数组可能不会被释放(有其他的引用),例如下面的代码:</p>
<p>这时候a和b就不是同一个数组了,清空了a而b还是指到之前的引用地址。所以最佳的请空数组方式是:将length设置为0:</p>
<h1>数组的排序</h1>
<p>Array.prototype.sort(),sort方法接受一个参数——Function,function会提供两个参数,分别是两个进行比较的元素,如果元素是String类型则通过Unicode code进行比较,如果是Number类型则比较值的大小。如果比较的函数中返回1则两个元素交换位置,0和-1不交换位置。先看一个例子:</p>

 
  

 


var
a = [2,3]; var b = a; // a = []; // console.log(b); // [2, 3] a.length = 0; console.log(a, b); // [], [] var arr = [13, 5, 20, 1]; // arr.sort(); // console.log(arr); // [1, 13, 20, 5] 在当前数组上排序 arr.sort(function(a, b) { // 默认是升序 // if (a > b) { // return 1; // } else { // return -1; // }; return (a > b) ? 1: -1; // 取代if else }); console.log(arr); // [1, 5, 13, 20] var arr2 = [ { a : 2, b : 3.2} , { a : 3, b : 1.2} , { a : 4, b : 2.2} , { a : 6, b : 1.2} , { a : 5, b : 3.2} ]; arr2.sort(function(a, b) { return a.b > b.b ? 1: -1; }); console.log(arr2); // 在排序的时候,先按两个对象的某个属性排序,代码如下: var arr3 = [ { a : 2, b : 3.2} , { a : 3, b : 1.2} , { a : 4, b : 2.2} , { a : 6, b : 1.2} , { a : 5, b : 3.2} ]; arr3.sort(function(x, y, key) { if ( x[key]> y[key]) { return 1; } else if ( x[key] == y[key]) { if ( x[key] > y[key]) { return 1 } else { return -1; }; } else { return -1; } });

 

转载于:https://www.cnblogs.com/manchun/p/4567160.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值