1、获取指定范围内的随机数
1
2
3
|
function getRadomNum(min,max){
return Math.floor(Math.random() * (max - min + 1)) + min;
} |
2、随机获取数组中的元素
1
2
3
4
|
function getRadomFromArr(arr){
return arr[Math.floor(Math.random()*arr.length)];
} |
3、生成从0到指定值的数字数组
1
2
3
4
5
|
function getArray(len) {
var arr = [],i = 1;
for (; arr.push(i++) < len;);
console.log(arr)
} |
等同于:
1
2
3
4
5
6
7
|
function getArray(len) {
var arr = [],i = 1;
for (; i < len; i++) {
arr.push(i)
}
console.log(arr)
} |
4、打乱数字数组的顺序
1
2
3
4
|
var arr = [1, 2, 3, 4, 5, 6, 7, 'a' , 'dsfs' , 8, 9, 'v' ];
arr.sort( function () {
return Math.random() - 0.5
}); |
5、对象转换为数组
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
//注意对象必须是以下格式的才可以通过此方式转化为数组 //获取的DOM集合,以及函数的arguments也可以通过此方式转化为数组 var obj = {
0: 'qian' ,
1: 'long' ,
2: 'chu' ,
3: 'tian' ,
length: 4
} var objArr = Array.prototype.slice.call(obj);
// var objArr = [].slice.call(obj); // var objArr = Array.prototype.slice.apply(obj); console.log(objArr) |
6、验证是否为数组
1
2
3
|
function isArray(obj) {
return Object.prototype.toString.call(obj) === '[object Array]' ;
} |
7、获取数组中最大或者最小值
1
2
3
4
5
6
|
function maxAndMin(arr){
return {
max:Math.max.apply( null ,arr.join( ',' ).split( ',' )),
min:Math.min.apply( null ,arr.join( ',' ).split( ',' ))
}
} |
8、清空数组
1
2
3
4
5
6
7
8
9
10
11
|
//方式一 通过将长度设置为0 var arr = [1, 2, 3, 4, 5];
arr.length = 0; //方式二 通过splice方法 var arr = [1, 2, 3, 4, 5];
arr.splice(0, arr.length); //方式三 通过将空数组 [] 赋值给数组(严格意义来说这只是将ary重新赋值为空数组,之前的数组如果没有引用在指向它将等待垃圾回收。) var arr = [1, 2, 3, 4, 5];
arr = []; |
9、保留指定小数位
1
2
|
var num =4.345678;
num = num.toFixed(4); // 4.3457 第四位小数位以四舍五入计算
|
10、生成指定长度的随机字母数字字符串
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
// 生成指定长度的随机字母数字字符串 /*写法一 function getRandomStr(len) { var str = "";
for (; str.length < len; str += Math.random().toString(36).substr(2));
return str.substr(0, len);
} 写法二 function getRandomStr(len) { var str = "";
for (; str.length < len;) {
str += Math.random().toString(36).substr(2);
}
return str.substr(0, len);
}*/ /*写法三*/ function getRandomStr(len) {
for ( var str = '' ; str.length < len; str += Math.random().toString(36).substr(2));
return str.substr(0, len)
} |
11、找出数组中出现次数最的元素,并给出其出现过的位置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
function getMaxAndIndex(arr) {
var obj = {};
arr.forEach( function (item, index) {
if (!obj[item]) {
obj[item] = {
indexs: [index]
}
} else {
obj[item][ 'indexs' ].push(index);
}
});
var num = 0; //记录出现次数最大值
var str = '' ; //记录出现次数最多的字符
var reArr; //返回最大值的位置数组
for ( var attr in obj) {
var temp = obj[attr][ 'indexs' ];
if (temp.length > num) {
num = temp.length;
str = attr;
reArr = temp;
}
}
return {
maxStr: str,
indexs: reArr
}
} |
一、简单一维数组的去重:
简单一维数组的去重方法有很多,这种数组里面的值都是普通的数据类型,并没有对象,因此去重方法有很多,这里总结一下常用的四种方法(网上还有一些其它的方法):
方法一:双层循环去重
function uniqueArr(arr) {
var result = [];
for (var i = 0; i < arr.length; i++) {
for (var j = i + 1; j < arr.length; j++) {
if (arr[i] === arr[j]) {
j = ++i;
}
}
result.push(arr[i]);
}
return result;
}
方法二:利用对象的属性不能相同去重
function uniqueArr(arr) {
var result = [];
var obj = {};
for (var i = 0; i < arr.length; i++) {
if (!obj[arr[i]]) {
obj[arr[i]] = 1;
result.push(arr[i]);
}
}
return result;
}
方法三:利用下标
function uniqueArr(arr) {
var result = [arr[0]];
for (var i = 1; i < arr.length; i++) {
if (result.indexOf(arr[i]) == -1) {
result.push(arr[i]);
}
}
return result;
}
方法四:ES6去重
function uniqueArr(arr) {
return Array.from(new Set(arr));
}
二、包含对象的二维数组去重:
假设有这样的一个二维数组,数组里面多个对象的属性至少有一个都一样,那就该如何去除重复的数据呢?这里总结一下两种方法:
方法一:双重循环去除法
function uniqueArr(arr, key) {
var newArr = [];
for (var i = 0; i < arr.length; i++) {
var flag = true;
for (var j = 0; j < newArr.length; j++) {
if (arr[i][key] == newArr[j][key]) {
flag = false;
}
}
if (flag) newArr.push(arr[i]);
}
return newArr;
}
方法二:利用reduce来实现
function uniqueArr(arr, key) {
var hash = {};
return arr.reduce(function(item, next) {
hash[next[key]] ? '' : hash[next[key]] = true && item.push(next);
return item
}, []);
}
例子:
var arr = [{
id: '001',
name: 'Jack'
},
{
id: '002',
name: 'Eric'
},
{
id: '003',
name: 'Tom'
},
{
id: '003',
name: 'Lucy'
},
{
id: '002',
name: 'Lucy'
},
{
id: '004',
name: 'Jacky'
},
]
uniqueArr(arr, 'id');