数组去重
let arr = [ 1, 2, 2, 1, 3, 4, 5, 5, 3, 4];
// 第一种方法
let newArr = Array.from(new Set(arr));
console.log(newArr);
// newArr:[1, 2, 3, 4, 5];
// 第二种方法
let newArr1 = [...new Set(arr)]; // 扩展运算法 ...
console.log(newArr1)
// newArr1:[1, 2, 3, 4, 5];
// 第三种方法
let newArr2 = [ ];
arr.forEach(item => newArr2.indexOf( item ) === -1 ? newArr2.push ( item ) : null) // instanceOf:检测某个实例属于这个类
console.log(newArr2)
// newArr2:[1, 2, 3, 4, 5];
// 第四种方法 filter 过滤器法
// 第一种类型
const map = new Map();
arr = arr.filter(v => !map.has(v) && map.set(v, 1));
console.log(arr) // [1, 2, 3, 4, 5]
// 第二种类型
let arrObj = [{ num: 1 }, { num: 5 }, { num: 1 }]
const map1 = new Map();
arrObj = arrObj.filter(v => !map1.has(v.num) && map1.set(v.num, 1));
console.log(arrObj) // [{ num: 1 }, { num: 5 }]
字符串常用的方法
Var str = “ a b b c a l g i d k j g I d g e h i g j l d f ”
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
1、indexOf();
返回指定字符串第一次出现的位置。
str.indexOf(‘a’); 结果是:0
2、lastIndexOf();
返回指定字符串最后一次出现的位置。
str.lastIndexOf(‘f’); 结果是:22
3、subString();
提取字符串中两个指定索引号之间的字符(两个索引不能为负值)
str.subString(0,5); 结果是:abbca
4、slice();
提取字符串中两个指定索引号之间的字符(索引可以为负值,-1就是倒数第二位)
str.slice(0,-5); 结果是:abbcalgidkjgidgehi
5、charAt();
返回指定索引的字符
str.charAt(1); 结果是:b
6、concat();
链接两个或多个字符串,返回链接后的新字符串。
var str2 = “1”;
var str3 = Str.concat(str2);
log(str3); 结果是:abbcaigidkjgidgehigjidf1
7、split();
把字符串分割为子字符串数组。
str.split(); 结果是:[“abbcaigidkjgidgehigjidf”]
8、toString();
返回字符串对象,比如把数字转换成字符串对象。
9、trim();
移除字符串首位空格,经常在对input 和textarea的值做判断时用到。
10、toLoverCase();
把字符串准换成小写的。
11、toUpperCase();
把字符串准换成大写的。
12、match();
找到一个或者多个子串或者正则表达式的匹配。
13、replace();
替换指定子串或者与正则表达式匹配的子串。
14、search();
检索指定子串或者与正则表达式匹配的值,返回的值是数字。
数组的常用方法
- shift();
把数组的第一个元素删除,并返回第一个元素的值。
var movePos = [1,2]; movePos.shift();
log(movePos); 结果是:[2]
log(movePos.length); 结果是:1
- concat();
用于连接两个或多个数组,并返回一个新数组,新数组是将参数添加到原数组中构成的。
var a = [1, 2];
var b = a.concat(4,5);
vog(b); 结果是:[1,2,4,5]
var ar1 = [7,8];
var ar2 = [1111,2222];
var ar3 = b.concat(ar1,ar2);
log(ar3); 结果是:[1,2,4,5,7,8,1111,2222]
log(b.length); 结果是:4
log(ar3.length); 结果是:8
- join();
用于把数组中的所有元素放入一个字符串,元素是通过指定的分隔符进行分割的。
返回一个字符串,该字符串是通过把arrayObject的每个元素转换为字符串,然后把这些字符串连接起来,在两个元素之间插入separator字符串而生成的。
var arr = [11,22];
var brr = arr.join(“+”);
log(brr); 结果是:11 + 22
- pop();
用于删除并返回数组的最后一个元素,如果数组为空,则把数组的长度减1。
var a = [11,22,33];
var arr = a.pop();
log(arr); 结果是:33
- push();
可向数组的末尾添加一个或多个元素,并返回新的长度,(用来改变数组的长度)。
var a = [1,2];
a.push('111','222','ddd');
log(a); 结果是:[1,2,’111’,’222’,’ddd’]
log(a.length); 结果是:5
- reverse();
方法用于颠倒数组中元素的顺序。
var a = [1,2,3];
var b = a.reverse();
log(b); 结果是:[3,2,1]
- slice();
方法可从已有数组中返回选定的元素,slice(开始位置,结束位置)
var a = [1,2,3];
var b = a.slice(1,3);
log(b); 结果是:[2,3]
- splice();
方法向/从数组中添加/删除项目,然后返回被删除的项目元素。
var arr = [1,2,3,4];
arr.splice(2,0,5,6); 从索引2的位置删除0个,添加5,6
log(arr); 结果是:[1,2,5,6,3,4]
splice() 方法可删除从index处开始的零个或多个元素,并且用参数列表中声名的一个或多个值来替换那些被删除的元素。
var arr = [1,2,3,4,5,6];
arr.splice(2,3,7,8);
log(arr); 结果是:[1,2,7,8,6]
- unShift();
方法可向数组的开头添加一个或多个元素,并返回新的长度。
var a = [11,22,33,44];
a.unShift(‘555’);
log(a); 结果是:[‘555’,11,22,33,44]
- sort();
按指定的参数对数组进行排序
var a = [9,2,5,8,6];
a.sort();
log(a); 结果是:[2,5,6,8,9]