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中常用的算法排序相关推荐
- ACM 中常用的算法有哪些? 2014-08-21 21:15 40人阅读 评论(0) 收藏...
ACM 中常用的算法有哪些?作者: 张俊Michael 网络上流传的答案有很多,估计提问者也曾经去网上搜过.所以根据自己微薄的经验提点看法. 我ACM初期是训练编码能力,以水题为主(就是没有任何算法, ...
- JS中常用正则转换和信息验证的封装(80个)
JS中常用正则转换和信息验证的封装(80个) 邮箱 手机号码 电话号码 是否url地址 是否字符串 是否数字 是否boolean 是否函数 是否为null 是否undefined 是否对象 是否数组 ...
- 总结JS中常用的数组的方法大全
总结JS中常用的数组方法 JS中常用的数组方法总结 数组(Array)是一种复杂的数据类型,它属于Object(对象)类型,用来将一组数组合在一起,通过一个变量就可以访问一组数据.在使用数组时,经常会 ...
- js中常用的对象—String的属性和方法
今天说一下,js中常用的内置对象--String对象 它有以下几个常用的属性: length prototype 有以下几个常用的方法: parseInt()转换为数字 parseFloat()转换为 ...
- Spark中常用的算法
Spark中常用的算法: 3.2.1 分类算法 分类算法属于监督式学习,使用类标签已知的样本建立一个分类函数或分类模型,应用分类模型,能把数据库中的类标签未知的数据进行归类.分类在数据挖掘中是一项重要 ...
- js中常用的数组和字符串方法
一:js中常用的数组方法 <script>//函数声明式中的方法const arr=[1,3,6,9,15,19,16];//函数的所有方法 map(),reduce(),filter() ...
- 【温故知新】——原生js中常用的四种循环方式
一.引言 本文主要是利用一个例子,讲一下原生js中常用的四种循环方式的使用与区别: 实现效果: 在网页中弹出框输入0 网页输出"欢迎下次光临" 在网页中弹出框输入1 网页输 ...
- js中数组反向、排序reverse、sort
全栈工程师开发手册 (作者:栾鹏) js系列教程1-数组操作全解 js中数组反向.排序 数组反向使用reverse函数,数组排序使用sort函数,排序函数可以传入比较函数,也可以修改数组圆形,自定义添 ...
- JS中对象按属性排序(冒泡排序)
原文地址 https://www.cnblogs.com/it-Ren/p/10898947.html 一路向北√ 越努力,越幸运. JS中对象按属性排序(冒泡排序) 冒泡排序:它重复地走访过要排序的 ...
最新文章
- 今天開始學習silverlight了
- DQL查询语句约束数据库设计备份和还原
- 如何巧用方位角和倾斜角增大光伏电站的发电量?
- [Java] 初始化与清理
- 根据开发提供的svn更新版本号从开发分支合并代码到测试分支工作目录的部分脚本...
- java 同一个package import_【编程基础】Java 中的Package和Import
- 零基础学Java的书籍,值得收藏
- Spring系列(九):Spring属性赋值注解@Value 用法介绍
- 《游戏大师Chris Crawford谈互动叙事》一22.1 互动叙事前途无量
- NVIDIA SMI 无法与 nvidia driver 通信
- git删除远程提交记录
- 人工智能时代的风口项目,电话机器人源码和系统部署
- FishC笔记—26 讲 字典:当索引不好用时2
- 电脑cpu电压测试软件,CPU-Z(cpu检测工具)
- 地图染色(四色定理)问题
- SAP工具箱 数据同步平台(九 与PO整合)
- matlab怎么写卷积过程,离散卷积过程举例图示详解
- 儿童python编程app_Python编程狮app下载
- 黑马 最最新 项目视频
- c# CAD二次开发 模拟CAD移动图形, 通过圆现在注记,改变图形颜色
热门文章
- [原创][连载].基于SOPC的简易数码相框 - Nios II SBTE部分(软件部分) - 从SD卡内读取图片文件,然后显示在TFT-LCD上...
- App.Config详解
- HDU2724 Tree【最小生成树】
- muduo之TimerQueue
- muduo:高效整型转换为字符串
- MySQL笔记2: count() 函数和 sum() 函数用法和区别
- Which of the following statement(s) equal(s) value 1 in C programming language?
- Spring AOP学习
- 登录框显示,错误:Cookies因预料之外的输出被阻止
- 树莓派apt-get下载网速太慢