在工作中都会经常用到的一些基础算法,可以很快解决问题.这些都是在工作中总结的,希望可以帮助到大家.

一、数组乱序

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中常用的算法排序相关推荐

  1. ACM 中常用的算法有哪些? 2014-08-21 21:15 40人阅读 评论(0) 收藏...

    ACM 中常用的算法有哪些?作者: 张俊Michael 网络上流传的答案有很多,估计提问者也曾经去网上搜过.所以根据自己微薄的经验提点看法. 我ACM初期是训练编码能力,以水题为主(就是没有任何算法, ...

  2. JS中常用正则转换和信息验证的封装(80个)

    JS中常用正则转换和信息验证的封装(80个) 邮箱 手机号码 电话号码 是否url地址 是否字符串 是否数字 是否boolean 是否函数 是否为null 是否undefined 是否对象 是否数组 ...

  3. 总结JS中常用的数组的方法大全

    总结JS中常用的数组方法 JS中常用的数组方法总结 数组(Array)是一种复杂的数据类型,它属于Object(对象)类型,用来将一组数组合在一起,通过一个变量就可以访问一组数据.在使用数组时,经常会 ...

  4. js中常用的对象—String的属性和方法

    今天说一下,js中常用的内置对象--String对象 它有以下几个常用的属性: length prototype 有以下几个常用的方法: parseInt()转换为数字 parseFloat()转换为 ...

  5. Spark中常用的算法

    Spark中常用的算法: 3.2.1 分类算法 分类算法属于监督式学习,使用类标签已知的样本建立一个分类函数或分类模型,应用分类模型,能把数据库中的类标签未知的数据进行归类.分类在数据挖掘中是一项重要 ...

  6. js中常用的数组和字符串方法

    一:js中常用的数组方法 <script>//函数声明式中的方法const arr=[1,3,6,9,15,19,16];//函数的所有方法 map(),reduce(),filter() ...

  7. 【温故知新】——原生js中常用的四种循环方式

    一.引言 本文主要是利用一个例子,讲一下原生js中常用的四种循环方式的使用与区别: 实现效果: 在网页中弹出框输入0   网页输出"欢迎下次光临" 在网页中弹出框输入1   网页输 ...

  8. js中数组反向、排序reverse、sort

    全栈工程师开发手册 (作者:栾鹏) js系列教程1-数组操作全解 js中数组反向.排序 数组反向使用reverse函数,数组排序使用sort函数,排序函数可以传入比较函数,也可以修改数组圆形,自定义添 ...

  9. JS中对象按属性排序(冒泡排序)

    原文地址 https://www.cnblogs.com/it-Ren/p/10898947.html 一路向北√ 越努力,越幸运. JS中对象按属性排序(冒泡排序) 冒泡排序:它重复地走访过要排序的 ...

最新文章

  1. 今天開始學習silverlight了
  2. DQL查询语句约束数据库设计备份和还原
  3. 如何巧用方位角和倾斜角增大光伏电站的发电量?
  4. [Java] 初始化与清理
  5. 根据开发提供的svn更新版本号从开发分支合并代码到测试分支工作目录的部分脚本...
  6. java 同一个package import_【编程基础】Java 中的Package和Import
  7. 零基础学Java的书籍,值得收藏
  8. Spring系列(九):Spring属性赋值注解@Value 用法介绍
  9. 《游戏大师Chris Crawford谈互动叙事》一22.1 互动叙事前途无量
  10. NVIDIA SMI 无法与 nvidia driver 通信
  11. git删除远程提交记录
  12. 人工智能时代的风口项目,电话机器人源码和系统部署
  13. FishC笔记—26 讲 字典:当索引不好用时2
  14. 电脑cpu电压测试软件,CPU-Z(cpu检测工具)
  15. 地图染色(四色定理)问题
  16. SAP工具箱 数据同步平台(九 与PO整合)
  17. matlab怎么写卷积过程,离散卷积过程举例图示详解
  18. 儿童python编程app_Python编程狮app下载
  19. 黑马 最最新 项目视频
  20. c# CAD二次开发 模拟CAD移动图形, 通过圆现在注记,改变图形颜色

热门文章

  1. [原创][连载].基于SOPC的简易数码相框 - Nios II SBTE部分(软件部分) - 从SD卡内读取图片文件,然后显示在TFT-LCD上...
  2. App.Config详解
  3. HDU2724 Tree【最小生成树】
  4. muduo之TimerQueue
  5. muduo:高效整型转换为字符串
  6. MySQL笔记2: count() 函数和 sum() 函数用法和区别
  7. Which of the following statement(s) equal(s) value 1 in C programming language?
  8. Spring AOP学习
  9. 登录框显示,错误:Cookies因预料之外的输出被阻止
  10. 树莓派apt-get下载网速太慢