字符串常用方法
includes(子串)
用于判断字符串是否包含指定的子字符串。
如果找到匹配的字符串则返回 true,否则返回 false。
注意: includes() 方法区分大小写。
indexOf(子串)
返回子串在字符串中首次出现的位置。
如果没有找到匹配的字符串则返回 -1。
注意:indexOf() 方法区分大小写。空字符串为0。
lastIndexOf(参数1,参数2)
查找参数1子串在从0开始到参数2的位置中最后一次出现的位置
参数1:必需 查找的子串
参数2:可选 结束查找的位置
返回值:如果找到返回子串位置, 如果找不到返回-1;
match(子串)
可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
返回值:检索到的值(数组类型)
search(子串)
用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。
如果没有找到任何匹配的子串,则返回 -1。
replace(参数1,参数2)
参数1:必需 被替换的子串或正则表达式
参数2:必需 用来替换的字符串。可以是函数 用于动态修改替换值
用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
该方法不会改变原始字符串。
slice(参数1,参数2)
截取从参数1到参数2(不包含)位置的字符串
参数1:开始截取索引 可以为负
参数2:结束截取的索引 可以为负(可选,默认截取到末尾)
返回值:截取到的字符串
如果参数1>参数2,截取前不会交换两者位置,报错
split(参数1,参数2)
用于把一个字符串分割成字符串数组。
参数1:可选,分割符。字符串或正则表达式
参数2:可选 分割份数
返回值:分割成子串创建的数组
提示: 如果把空字符串 ("") 用作参数1,那么每个字符之间都会被分割。
注意: split() 方法不改变原始字符串。
trim()
去除头尾空格
返回值:移除头尾空格的字符串。
toLowerCase() 将字符串转为小写
toUpperCase() 将字符串转化为大写
str.length 返回字符串的长度
数组常用方法
shift()
删除第一个元素
返回值:被删除的元素
pop()
删除最后一个元素
返回值:被删除的元素
unshift()在头部添加元素
push()在尾部添加元素
splice(参数1,参数2,参数3)
参数1:必需 开始删除/添加位置 可以为负
参数2:必需 删除的个数 若为0,不删除
参数3:可选 添加的元素,多个元素用逗号隔开
返回值:删除的元素组成的数组
concat()
用来连接数组
返回一个新的数组
reduce()
用于累加求和
注意: reduce() 对于空数组是不会执行回调函数的。
forEach() 遍历数组
三个参数依次为:当前元素,索引,数组
filter() 过滤 && map() 映射
相同:不会对空数组进行检测。不会改变原始数组。
不同:
let arr=[2,4,1,5,3,1];
let res1=arr.map(function (item) {
return item>1;
});
let res2=arr.filter(function (item) {
return item>1;
});
console.log(res1,res2);
sort()
用于对数组的元素进行排序;
注意:这种方法会改变原始数组!且默认排序顺序为按字母升序;
reverse() 颠倒数组中的元素顺序;
join()
用于把数组中的所有元素转换成一个字符串。
元素是通过指定的分隔符进行分隔的。如果省略该参数,则使用逗号作为分隔符
slice(参数1,参数2)
选定/截取数组
参数1:必需 开始截取位置
参数2:可选 结束截取位置
返回值:截取到的数组
find() 返回满足条件的第一个值
findIndex() 返回满足条件的第一个索引
every() && some()
相同:
用于检测数组
不会对空数组进行检测。
不会改变原始数组。
不同:
every()如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
如果所有元素都满足条件,则返回 true。
some()如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
如果没有满足条件的元素,则返回false。
数组与字符串方法比较
转换
字符串可以使用split()方法转换为数组;而数组可以使用join()方法转换为字符串
拼接
字符串和数组共同拥有拼接方法concat()
长度
都拥有length属性
截取
字符串和数组都拥有截取方法slice()
位置
字符串和数组都拥有查找位置的两个方法:indexOf()和lastIndexOf()
查找
includes()
查找字符串,返回布尔值 数组通用
顺序
反转
在数组Array中存在reverse()方法来反转数组
而字符串String也可以利用call()或apply()来实现反转
排序
在数组Array中存在sort()方法来对数组排序,默认按字符串升序排列数组项
而字符串String也可以利用call()或apply()来实现排序
var str = '12435';
console.log(Array.prototype.sort.apply(str.split('')).join(''));
对象常用方法
扩展运算符...
可用于浅拷贝,合并对象
Object.assign()
对 对象做合并
注意:重名属性覆盖
Object.keys()
返回一个由对象自身的(不含继承的)所有可遍历(enumerable)属性的键组成的数组
Object.values()
返回一个由值组成的数组
注意:属性名为数值的属性,是按照数值大小,从小到大遍历的
const obj = { 100: 'a', 2: 'b', 7: 'c' };
Object.values(obj)
Object.values()会过滤属性名为 Symbol 值的属性。
Object.values({ [Symbol()]: 123, foo: 'abc' });
Object.entries()
返回一个由键值对组成的数组
除了返回值不一样,该方法的行为与Object.values基本一致。
基本用途是遍历对象的属性。
let obj = { one: 1, two: 2 };
for (let [k, v] of Object.entries(obj)) {
console.log(
k,v
);
}
另一个用处是,将对象转为真正的Map结构。
const obj = { foo: 'bar', baz: 42 };
const map = new Map(Object.entries(obj));
map
Object.fromEntries()
Object.fromEntries()方法是Object.entries()的逆操作,用于将一个键值对数组转为对象。
该方法的主要目的,是将键值对的数据结构还原为对象,因此特别适合将 Map 结构转为对象。
const entries = new Map([
['foo', 'bar'],
['baz', 42]
]);
Object.fromEntries(entries)
JSON
反序列化
JSON.stringify(参数)
把json格式转换为字符串
序列化
JSON.parse(参数)
把字符串转换为json格式
更改对象属性名
var 变量= JSON.parse(JSON.stringify(obj).replace(/要更改的属性名/g,"新的属性名"));