-----数组和字符串的方法
程序员文章站
2023-12-21 23:32:52
...
1、数组
(1)push pop
push: 尾部添加数据。
语法:array.push(任意个实参。。。。)
作用:将所有的实参数据追加到当前数组对象末尾。
返回:当前数组的新的长度
pop:尾部删除数据
语法:array.pop();
作用:将当前数组的最后一个元素返回。并删除掉。
返回:被删除的元素。
(2)shift unshift
shift: 开头删除数据
语法:array.shift();
作用:删除当前数组的第一个元素。
返回:被删除的元素
unshift:开头添加数据
语法:array.unshift(......);
作用:将实参中的数据添加到数组的头部。
返回:数组的新长度
(3)join
join:转换成字符串
作用:将当前数组的所有的元素,顺序的使用实参符号作为连接符连接成一个字符串。
语法:array.join(连接符 ? )
连接符:是一个字符串,可以省略。如果省略,将使用 逗号 作为默认的连接符。
如果使用空字符串作为实参,那么连接符为空字符串。
返回:连接成的字符串。
(4)indexOf lastIndexOf
indexOf: 查找指定值
作用:从当前数组中从前往后查找指定的值。
语法:array.indexOf(key,fromIndex?)
key: 代表要搜索的值。
formIndex:起始搜索的索引。如果省略,从头开始搜索。
返回:如果key 存在于 数组中,返回 key在该数值中的第一个元素的位置。
如果没有找到,返回-1.
lastIndexOf:
作用:同上
语法:同上
返回:同上。
区别:lastIndexOf从后往前搜索。
(5)slice
slice:截取数组
作用:获得当前数组的某一部分的子数组。
语法:array.slice(start? , end ?)
start: 截取的起始索引。包含。
end:截取的结束索引。不包含。
如果end 省略:从start 截取到末尾。
如果两个都省略:复制数组。
返回:截取到的子数组。
注意:
1:截取子串不会影响原数组数据。
2:参数可以使用负数作为实参,负数代表了从最后一个元素往前数,
-1代表了最后一个元素,-2代表倒数第二个元素,一次类推。
(6)splice
splice: 删除(位置,个数,增加的元素)
作用:可以对当前数组实现增加、删除、修改元素的功能。
增加:如果设置为 0,则不会删除项目
array.splice(index,0,ele1,ele2....)
删除:
array.splice(index,removeCount);
removeCount 删除的个数,如果设置为 0,则不会删除项目
修改:
array.splice(index,removeCount,ele1,ele2....)
removeCount 和 后面的元素的个数可以不一致。
返回:被删除的元素组成的数组。
(7)reverse
reverse:数组翻转
作用:对当前数组进行翻转。
语法:array.reverse()
返回:当前被翻转的数组。
(8)sort
sort:排序
作用:对当前数组进行升序排序。
返回:排序之后的当前数组.
语法:array.sort(compareFn ? )
注意:
1:如果 compareFn 省略,那么会使用 sort 的默认的排序规则对当前数组进行排序。
默认的排序规则是,对所有的元素都转换为字符串,然后在排序。
2:如果希望使用自定义的排序规则,那么就需要定义回调函数。
sort 方法底层根据 compareFn 的返回值来确定 两个实参数据的大小。
如果返回值为正数,那么意味着 第一个参数大于第二个参数。
如果返回负数,那么意味着 第二个参数大于第一个参数。
如果返回 0 意味着相等。
compareFn 称为比较器函数。
(9)forEach
forEach:遍历数组
作用:用来遍历当前数组对象的。
语法:array.forEach(callbackFn);
callbackFn : 要求有三个参数
value:代表了当前数组中的每一个元素。
index:代表了元素的下标
array:代表了当前数组。
(10)map
map:映射数组
作用:可以对当前数组的元素进行整体的某些操作。
语法:array.map(callbackFn)
callbackFn : 参数和 forEach的回调函数的参数一致。
返回:操作之后的新数组
没有修改数组自身
(11)filter
filter:过滤器
作用:将当前数组中满足条件的元素过滤出来添加到一个新数组中。
语法:数组.filter(callbackFn);
callbackFn 参数和 forEach的一致。
返回:过滤得到的新数组。
(12)find findIndex
find:查找第一个元素
作用:在当前数组中查找第一个满足条件的元素。
语法:array.find(callbackFn);
callbackFn 的参数和 forEach一致。
返回:找到的满足条件的元素。如果没有找到 返回undefined。
findIndex:查找第一个元素的索引
作用:在当前数组中查找第一个满足条件的元素的索引。
语法:array.findIndex(callbackFn)
返回:满足条件的索引,不存在,返回-1
(13)some every
some:判断是否存在满足条件的元素,返回布尔值
作用:用来判断当前数组中是否存在满足条件的元素。
语法:array.some(callbackFn)
callbackFn 参数同 forEach
返回:如果有一个满足条件,那么就返回true,都不满足,返回false。
every: 判断是否全部满足条件,返回布尔值
作用:用来判断当前数组中是否所有的元素都满足条件。
语法:array.every(callbackFn)
callbackFn 参数同 forEach
返回:如果所有的元素都满足条件,那么就返回true,有一个不满足,返z回false。
(14)includes concat
includes: 是否包含,返回布尔值
作用:用来判断当前数组中是否包含指定的值。
语法:数组.includes(searchElement, fromIndex ?)
参数的意思和indexOf是一致的。
返回 boolean值,如果 搜索到了要找的内容,返回true,没有找到返回false。
concat:连接 形成新数组
作用:使用当前数组和实参进行拼接,形成一个新的数组,返回。
语法:array.concat(...)
返回:连接形成的新数组。原数组没有发生变化
(15) Array.isArray(obj)-----数组的静态函数
针对数组的静态函数:
语法:Array.isArray(obj)
作用:用来判断实参数据是否是数组对象的。
返回:如果obj是一个数组,那么返回true,否则返回false。
(16)flat---转化为一维数组
如果不管有多少层嵌套,都要转成一维数组:
[1, [2, [3]]].flat(Infinity)
// [1, 2, 3]
(17)callbackFn
callbackFn : 要求有三个参数
value:代表了当前数组中的每一个元素。
index:代表了元素的下标
array:代表了当前数组。
(18)Array.from()---用于将两类对象转为真正的数组:类似数组的对象
//转数组
let divs = document.querySelectorAll('div')
console.log(divs);
let arr2 = Array.from(divs);
console.log(arr2);
(19)Array.of() -----用于将一组值,转换为数组
Array.of(3, 11, 8) // [3,11,8]
2、字符串
(1)repeat()---返回一个新字符串,表示将原字符串重复n次
//repeat
let res = '你好世界';
console.log(res.repeat(2));
charAt(): 获得指定位置上的字符。
charCodeAt():获得指定位置上的字符对应的整数值。
concat(): 进行字符串连接. 和 + 的效果一致。
indexOf(): 从当前字符串中从指定的位置从前往后搜索指定的子串,并返回搜索的结果。
如果找到了,返回索引,没有,返回-1
lastIndexOf(): 和indexOf功能一致,只不过是从后往前搜索。
replace(old,new):将当前字符串中指定的内容,替换为新的指定的内容。
slice(start ? ,end ? ): 进行子串截取的。 和数组中的slice方法的参数的意思一致。
substring(start,end): 子串截取。和 slice的功能一致。只是不支持负数。
substr(start,length): 子串截取。从start位置开始截取,截取length个。
split(separtor): 使用实参将当前字符串对象切割为数组。
如果实参是 空字符串,那么会将当前字符串的每个字符作为一个元素存储到数组中。
trim(): 将当前字符串的前导空白符和后导空白符删除,并返回。
toLowerCase():将当前字符串中的所有的大写字符转换为小写并返回。
toUpperCase():将当前字符串中的所有的小写字符转换为大写并返回。
startsWith(): 判断当前字符串是否以指定的字符串开头。
endsWith():判断当前字符串是否以指定的字符串结尾。