zoukankan      html  css  js  c++  java
  • 数组方法:排序和清空

    <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; } });
  • 相关阅读:
    太精辟了!从学校到职场的十条经典语录!
    平庸领导下跳棋,伟大领导下象棋(转)
    新官上任前的十一大基本功
    病母私自出房有感
    你为何还会出现在我梦里
    创业辛酸
    Goldengate can't extract data from compressed table
    配置GoldenGate同步DDL语句(3)
    Goldengate各build与Oracle数据库版本间的兼容性
    11g新特性:Note raised when explain plan for create index
  • 原文地址:https://www.cnblogs.com/manchun/p/4567160.html
Copyright © 2011-2022 走看看