数组排序: arr.sort([比较器函数对象]): 直接将原数组按升序排列! 默认sort方法,将所有元素统一转为字符串,PK unicode ***自定义数组排序:2步: 1. 先定义比较器函数: 比较器函数:通过返回>0或<0或=0的数 判断任意两值的大小 要求:如果a>b,则返回>0的数 如果a<b, 则返回<0的数 如果a=b,则返回=0的数 比如:a-b 1-12 <0 说明 a<b 123-23 >0 说明 a>b 3-3 =0 说明 a=b 固定套路:function compare(a,b){ return a-b; } 函数本质:js中的函数也是一个对象! 函数名是引用函数对象的变量名! 2. 将比较器函数作为参数,传入sort方法 function compare(a,b){ return a-b; } //var compare=function(a,b){return a-b;} arr.sort(compare); 何时要加():只要调用函数时,都要加() 何时不加:将函数作为对象传递时,仅用函数名即可! 不加圆括号
所有排序算法,只有升序排列! 只要颠倒比较器的正负号(*-1),即可升序改降序。 其实第一步和第二步可写成1句话: arr.sort(function(a,b){return a-b;}); *节省内存空间!*
function fun(a,b){return a-b;}/*才会被声明提前*/ vs var fun=function(a,b){return a-b;} 差别: 栈和队列:js中没有专门的栈和队列的类型 都是用数组模拟出来的! 栈:一端封闭,只能从另一端进出的数组 FILO 何时:只要数组只能从一端进出时 末尾入栈:arr.push(新值,...) 末尾出栈:var elem=arr.pop();
从头入栈:arr.unshift(新值,...) 从头出栈:var elem=arr.shift();
队列:只能从末尾进入,从头出的数组 FIFO 何时:希望数组中的元素按进入的顺序,依次使用时
易悦(深圳)科技有限公司
让快乐更简单
微信:EJoyYOJOY
微博:http://weibo.com/EJoyYOJOY
官网:http://www.ejoytec.com/
转载于:https://www.cnblogs.com/Ejoy/p/5750499.html
