(一)字符串常碰到的问题
1.字符串转化成数组
运用知识点:
split(val1,val2) 方法用于把一个字符串分割成字符串数组。
参数 | 描述 |
---|---|
val1 | 必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。 |
val2 | 可选。该参数可指定返回的数组的最大长度。 |
let strA = "1,2,3";
let strB = "1,2";
strA = strA.split(",");
strB = strB.split(",");
//strA ["1","2","3"]
//strB ["1","2"]
2.字符串去重
运用知识点:
Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。
toString() 方法可把一个逻辑值转换为字符串,并返回结果。
Array.from()方法就是将一个类数组对象或者可遍历对象转换成一个真正的数组。
ES6中扩展运算符三个点(…):这里三个点主要用到了将一个数组转为用逗号分隔的参数序列。
let str = "java,es6,js,es6";
let arr = new Set(str.split(","))
str = [...arr].toString();
//str "java,es6,js"
//如果想获得一个字符串去重后的数组,第二段改为:let arr = Array.from(new Set(str.split(",")));
//arr ["java","es6","js"]
3.两个字符比较取出不同
运用知识点:
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
includes() 方法用于判断字符串是否包含指定的子字符串。
ES6箭头函数。
let strA = "1,2,3,1,5";
let strB = "1,2";
let newArr = [];
strA = strA.split(",");
strB = strB.split(",");
newArr = strA.filter(x => !strB.includes(x));
//newArr [3,5]
(二)数组常碰到的问题
1.数组转化字符串
运用知识点:
join()指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。
let arr = [1,2,3];
let str = arr.join("");
//str 123
2.数组去重
运用知识点:
Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。
Array.from()方法就是将一个类数组对象或者可遍历对象转换成一个真正的数组。
let arr = [1,2,3,1,4,1];
arr = Array.from(new Set(arr));
//arr [1,2,3,4]
3.数组合并
let arrA = [1,2,3];
let arrB = [2,4,6];
let newArr = [...arrA,...arrB];
//newArr [1,2,3,2,4,6]
4.获取数组最大值
运用知识点:
Math.max() 函数返回一组数中的最大值。
Math.min() 函数返回一组数中的最小值。
let arr = [2, 3, 4, 25, 6, 7, 8];
let max = Math.max(...arr);
let min = Math.min(...arr);
//max 25
//min 2
5.两个数组的并集、交集、差集
运用知识点:
Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。
Set里有has(value)返回为布尔值,表示参数是否为Set成员。
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
let arrA = [1,2,3];
let arrB = [2,3,4];
//并集
let arr = new Set([...a,...b]);
//交集
let arr2 = new Set([...a].filter(x =>b.has(x)));
//差集
let arr3= new Set([...a].filter(x => !b.has(x)));
//arr [1,2,3,4]
//arr2 [2,3]
//arr3 [4]
数组和字符串之间我们总是能碰到很多问题,这篇文章会继续跟进方法。