日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

js中常用的算法排序

發布時間:2025/5/22 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js中常用的算法排序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  在工作中都會經常用到的一些基礎算法,可以很快解決問題.這些都是在工作中總結的,希望可以幫助到大家.

一、數組亂序

arr.sort(function randomsort(a, b) {return Math.random() > .5 ? -1 : 1; });

? function randomSort(a){
? ? var arr = a,
   random = [],
   len = arr.length;
  ? ?for (var i = 0; i < len; i++) {
  ?   var index = Math.floor(Math.random()*(len - i));
      random.push(a[index]);
      arr.splice(index,1);
    }
    return random;
  }

二、數組排序

常用與價格排序
let newArr = [
  {"name": "along","price":"20"},{"name": "along","price":"50"},{"name": "along","price":"40"}
] newArr.sort(function(a, b) {
return a.price - b.price; //小到大 /b.price - a.price 大到小
});

三、取最小值或者最大值

Minarr(arr){
  return Math.min(...arr); //取最小值
}

Maxarr(arr){
  return Math.max(...arr); //取最大值
}

四、數組值為對象去重

1.

setArr (arr) {
  var result = [];
  var obj = {};
  for(var i =0; i<arr.length; i++){
    if(!obj[arr[i].id]){
      result.push(arr[i]);
      obj[arr[i].id] = true;
    }
  }
  return result;
}

2.

function obj2key(obj, keys) {
  var n = keys.length,
  key = [];
  while (n--) {
    key.push(obj[keys[n]]);
  }
  return key.join('|');
}
function uniqeByKeys(array, keys) {
  var arr = [];
  var hash = {};
  for (var i = 0, j = array.length; i < j; i++) {
    var k = obj2key(array[i], keys);
    if (!(k in hash)) {
      hash[k] = true;
      arr .push(array[i]);
    }
  }
  return arr;
}
newArr = uniqeByKeys(newArr, ['video_pic']);? //newArr:去重數組??video_pic:去重value

五、查找元素在數組中位置

function indexOf(arr, item) {
  if (Array.prototype.indexOf){ //判斷當前瀏覽器是否支持
    return arr.indexOf(item);
  } else {
    for (var i = 0; i < arr.length; i++){
      if (arr[i] === item){
        return i;
      }
    }
  }
  return -1; //總是把return -1暴漏在最外層
}

六、遞歸

function factorialize(num){
  if(num < 0){
    return -1;
  }
  if(num === 0 || num === 1){
    return 1;
  }
  if(num >1){
    return num * factorialize(num-1)
  }
}

?

  

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

轉載于:https://www.cnblogs.com/alongup/p/10226505.html

總結

以上是生活随笔為你收集整理的js中常用的算法排序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。