数组去重

Array.prototype.unique = function(){
    var res = [];
    // forEach方法中的function回调有三个参数:
    //第一个参数是遍历的数组内容,第二个参数是对应的数组索引,第三个参数是数组本身
    this.forEach(function(v){
        if(res.indexOf(v)<0){
            res.push(v);
        }
    })
    return res;
}

已知bug:对于[1,1,2,2,3,'3'],会返回[1,2,3,3]


快速排序

function quickSort(arr){
  if(arr.length <= 1) return arr;
  var index = Math.floor(arr.length/2);
  var key = arr.splice(index,1)[0];
  var left = [],right = [];
  arr.forEach(function(v){
      v <= key ? left.push(v) : right.push(v);
  });
  return quickSort(left).concat([key],quickSort(right));
}

这个算法解释在http://www.ruanyifeng.com/blo...


不正常爆裂魔法使
60 声望0 粉丝