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

一、数组乱序

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)
  }
}

  

js中常用的算法排序的更多相关文章

  1. 今天给大家分享一下js中常用的基础算法

    今天给大家分享一下js中常用的基础算法,废话不多说,直接上代码: 1.两个数字调换顺序 ,b= function fun(a,b){ b = b - a ;// a = 2 ; b = 2 a = a ...

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

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

  3. js中常用的操作

    1.js中常用的数组操作 2.js中常用的字符串操作 3.js中常用的时间日期操作 4.定时器

  4. 基础篇:1.JavaScript运行在html中,引用有几种方式?—— 6.js中常用的输出方式?

    书接上文,上文提到若干条JavaScript的基础性知识,大部分都是一些概念性的东西,本着认真严谨的态度,我们要认真对待,有些条目的问题是某个知识点的周边延伸,为节约篇幅,就一起整理了,如有描述不对的 ...

  5. Js中常用的字符串,数组,函数扩展

    由于最近辞职在家,自己的时间相对多一点.所以就根据prototytpeJS的API,结合自己正在看的司徒大神的<javascript框架设计>,整理了下Js中常用一些字符串,数组,函数扩展 ...

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

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

  7. Spark中常用的算法

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

  8. JS中常用开发知识点

     JS中常用开发知识点 1.获取指定范围内的随机数 2.随机获取数组中的元素 3.生成从0到指定值的数字数组 等同于: 4.打乱数字数组的顺序 5.对象转换为数组 //注意对象必须是以下格式的才可以通 ...

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

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

随机推荐

  1. Python【每日一问】17

    问: [基础题]:简述Python的异常处理机制[提高题]:请实现一个函数,将一个字符串中的空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%2 ...

  2. ArduinoNano卡在上传,无法烧录

    卡在“上传...”.过了很久被告知失败. 上午在开发版管理器中将Arduino AVR Boards从1.6.20升级到1.6.22,出现这个问题. 再安装回1.6.20,问题未被解决. 查阅资料无果 ...

  3. ADO.NET中DbConnection.GetSchema方法的使用总结

    此方法获取数据库的结构,所以可以用它获取数据库中所有的表 先上代码 string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;U ...

  4. (转)基于OpenStack构建企业私有云(1)实验环境准备

    原文:https://www.unixhot.com/article/407 https://www.cnblogs.com/kevingrace/p/5707003.html-----完整部署Cen ...

  5. 【JSP】jsp报错:Syntax error, insert "}" to complete MethodBody

    使用MyEclipse编写JSP的时候有时会报错误如下 Syntax error, insert "}" to complete MethodBody 大体意思就是说方法体缺少缺少 ...

  6. linux命令-寻找超过100M的文件,并将其删除

    find / -type f -size +100M | xargs rm -rf 其中第一个/表示路径,此时表示的是根目录,也就是搜索全部的文件 -type表示类型 f表示是文件 -size 表示大 ...

  7. 第2章—装配Bean—通过java代码装配bean

    通过java代码装配bean ​ 在进行显式装配的时候,有两种选型方案:java和XML配置,这里先介绍java的配置方式. 2.3.1创建配置类 先复习下上一章的配置内容: @Configurati ...

  8. nuxt.js引入客户端脚本和第三方库出现window/document/ navigator未定义问题

    官方文档中已经给出解决方案: 实际操作也比较简单,比如我之前在项目中引入的wangeditor,这个插件里包含了navigator内容 解决:现在nuxt.config.js的webpack扩展配置中 ...

  9. 标准差(bias) 方差(variance)

    偏差(bias) 偏差度量了学习算法的期望预测与真实结果的偏离程序, 即 刻画了学习算法本身的拟合能力 . 方差(variance) 方差度量了同样大小的训练集的变动所导致的学习性能的变化, 即 刻画 ...

  10. 2-4 js基础-事件对象小结

    var e=ev||event; e.cancelBubble=true; document.documentElement   html document.body                  ...