1. 程式人生 > >高效陣列去重,陣列快排方法

高效陣列去重,陣列快排方法

陣列去重ES5的方法

function unique(){
 var res = [];
 var json = {};
 for(var i = 0; i < this.length; i++){
  if(!json[this[i]]){
   res.push(this[i]);
   json[this[i]] = 1;
  }
 }
 return res;
}
ES6寫法
let test=[1,2,3,3,2,1]
[...new Set(test)]


陣列快排
var quickSort = function(arr) {
  if (arr.length <= 1) { return arr; }
  var pivotIndex = Math.floor(arr.length / 2);
  var pivot = arr.splice(pivotIndex, 1)[0];
  var left = [];
  var right = [];
  for (var i = 0; i < arr.length; i++){
    if (arr[i] < pivot) {
      left.push(arr[i]);
    } else {
      right.push(arr[i]);
    }
  }
  return quickSort(left).concat([pivot], quickSort(right));
};


相關推薦

高效陣列陣列方法

陣列去重ES5的方法 function unique(){ var res = []; var json = {}; for(var i = 0; i < this.length; i

雙色球(陣列陣列排序Math物件)

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <st

前端實現陣列如何高效快捷?

陣列去重 1、雙迴圈去重 雙重for(或while)迴圈是比較笨拙的方法,它實現的原理很簡單:先定義一個包含原始陣列第一個元素的陣列,然後遍歷原始陣列,將原始陣列中的每個元素與新陣列中的每個元素進行比對,如果不重複則新增到新陣列中,最後返回新陣列;因為它的時間複雜度是O(n^2),如果陣列長度很大,那麼將

javascript array js 快取演算法陣列陣列隨機抽取、字母串轉數字數字轉字串

前言 因為平時在寫程式碼的過程中,有些演算法會經常重複寫,比如陣列去重、陣列抽取隨機值等!雖然這些不是很難的邏輯,但是每次剛開始遇到需求的時候,還是需要琢磨一些時間才能想出來,所以此文件把這些常見演算法的思想記錄下來,以便下次再遇到的時候不會手腳無措了! 這篇文件不考慮es6等

陣列顯示重複的元素及個數。

 var arr = ['土豆','土豆','茄子','土豆','茄子','土豆','紫紅色'];     function qc(arr){         var resultObj = {};  

陣列並輸出

public static int removeDuplicates(int[] nums) {         if (nums == null || nums.length == 0) {     

JS陣列JS根據數組裡面的物件屬性值

js陣列簡單去重   1 2 3 4 5 6 7 8 9 10 11 12 var arr1 = [1, 2, 3, 4, 5, 6, 3, 4, 3]; function arrayUnique1(arr) {   

JS 陣列對比兩個陣列之間有相同的值或物件就刪除

建立了兩個陣列,並且封裝了一個函式以供呼叫。 var arr1 = [a,b,c,d],arr2 = [a,c,d,f]; this.arrayWeightRemoval(arr1,arr2); //返回結果 [b,f] ; // 資料去重 this.arrayWeightRem

陣列最簡單兩種方法

 在學習es6的過程中發現Set建構函式,接受一個數組型別的引數可以去除重複值,不廢話直接上最簡單的程式碼 var array=[1,2,3,4,5,6,2,2,2,2,3,3,3] console.log([...new Set(array)]) 順便提一下以前使

陣列簡短而有效的方法

<script type="text/javascript"> var arr = [1,2,3,4,5,6,7,8,1,2,3,4,5,12,13,14,15]; /* js物件裡沒有重複的key,所以可以通過以下方法來解

Javascript 實現陣列快速排序

1.陣列去重 只討論兩種,當然方法很多。 A: 最簡單實現 思路:定義一個新的空陣列 n,利用 indexOf 判斷, 遍歷陣列 arr ,如果 arr[i] 已經存在於 n 陣列內,不新增;否則就將

陣列根據物件屬性

var arry=[{   name:"zhangsan",   age:12 },{   name:"zhangsan",   age:12 },{   name:"lisi",   age:12 },{   name:"wangwu",   age:12 }] var

JS--陣列的幾種常見方法

一、簡單的去重方法 // 最簡單陣列去重法 /* * 新建一新陣列,遍歷傳入陣列,值不在新陣列就push進該新陣列中 * IE8以下不支援陣列的indexOf方法 * */ function uniq(array){ var temp = []; //一個新的臨時陣列 for(v

javascript陣列陣列檢索制定項、陣列求差集

最近的專案中對資料操作很頻繁,我將其中使用到的部分拿出來分享一下; 一、陣列去重 直接上程式碼: let distinct=function(arr) { let result = [], i, j, len = arr.length; for (i =

js陣列並且升序排序常用方法總結

方法一:雙層迴圈,外層迴圈元素,內層迴圈時比較值如果有相同的值則跳過,不相同則push進陣列Array.prototype.distinct = function(){ var arr = this, result = [], i, j, len = arr

JS 陣列陣列元素是物件的情況)

js陣列去重有經典的 幾種方法 但當陣列元素是物件時,就不能簡單地比較了,需要以某種方式遍歷各值再判斷是否已出現。 因為: 1.如果是雜湊判斷法,物件作雜湊表的下標,就會自動轉換成字元型型別,從而導致所有元素都相等,這時判斷方法不再有意義。一般最後陣列就只剩一個

JavaScript中陣列的幾種常用方法

專案中經常會處理一些資料,像一個json資料,裡邊全是陣列,要把所有的資料的相同的屬性值放在一個數組裡,然後再判重,獲取最終的資料,所以就會經常用到陣列判重,於是找了幾個常用的方法。如下: 第一種:先把原陣列的第一個值傳進新陣列,然後從索引為1開始遍歷原陣列

陣列的幾種封裝方法

0、es6方法 let unique = new Set(arr); console.log(Array.from(unique)); 1、遍歷陣列法: 此方法缺點: IE8以下不支援

JS陣列的幾種實現方法

//使用indexOf function unique1(arr) { var result=[]; for(var i=0;i<arr.length;i++){ if(result.indexOf(arr[i])==-1){ result.push(ar

JSON陣列,list陣列物件進行

js對json陣列去重 /* * JSON陣列去重 * @param: [array] json Array * @param: [string] 唯一的key名,根據此鍵名進行去重 */ uniqueArray:function (array, k