js中常用的算法排序
2019-01-08 08:23:01来源:博客园 阅读 ()
在工作中都会经常用到的一些基础算法,可以很快解决问题.这些都是在工作中总结的,希望可以帮助到大家.
一、数组乱序
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)
}
}
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 如何用算法删除重复数据 2020-03-18
- JS实现标签页切换效果 2020-03-12
- JSP session配置对web应用的影响 2019-12-27
- javascript数组常用的方法 2019-12-18
- Javascript排序算法的介绍 2019-10-29
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash