1
2
3
|
function
getRadomNum(min,max){
return
Math.floor(Math.random() * (max - min + 1)) + min;
}
|
1
2
3
4
|
function
getRadomFromArr(arr){
return
arr[Math.floor(Math.random()*arr.length)];
}
|
1
2
3
4
5
|
function
getArray(len) {
var
arr = [],i = 1;
for
(; arr.push(i++) < len;);
console.log(arr)
}
|
等同于:javascript
1
2
3
4
5
6
7
|
function
getArray(len) {
var
arr = [],i = 1;
for
(; i < len; i++) {
arr.push(i)
}
console.log(arr)
}
|
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
});
|
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)
|
1
2
3
|
function
isArray(obj) {
return
Object.prototype.toString.call(obj) ===
'[object Array]'
;
}
|
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(
','
))
}
}
|
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 = [];
|
1
2
|
var
num =4.345678;
num = num.toFixed(4);
// 4.3457 第四位小数位以四舍五入计算
|
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)
}
|
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
}
}
|
简单一维数组的去重方法有不少,这种数组里面的值都是普通的数据类型,并无对象,所以去重方法有不少,这里总结一下经常使用的四种方法(网上还有一些其它的方法):
方法一:双层循环去重java
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; }
方法三:利用下标app
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去重dom
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来实现ui
function uniqueArr(arr, key) { var hash = {}; return arr.reduce(function(item, next) { hash[next[key]] ? '' : hash[next[key]] = true && item.push(next); return item }, []); }
例子:lua
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');