JavaScript面试考点之数组和字符串的常用方法

时间:2021-6-11 作者:qvyue

1、JavaScript数组的常用方法

我们可以把数组的基本操作方法归纳为增、删、改、查。

1)增:push ()、unshift ()、slice ()、splice ()、contact ()

push () 方法是接收任意数量的参数,并将其添加到数组的末尾,返回值为该数组的最新长度。会影响原始数组。

unshift () 方法是接收任意数量的参数,并将其添加到数组的开头,返回值为该数组的最新长度。会影响原始数组。

slice () 方法可从已有的数组中返回选定的元素。可提取字符串的某个部分,并以新的字符串返回被提取的部分。所以不会影响原始数组。可传入可选参数起始位置start(数组片断开始处的数组下标,包含开始索引。如果该参数为负数,则表示从原数组中的倒数第几个元素开始提取,slice(-2) 表示提取原数组中的倒数第二个元素到最后一个元素(包含最后一个元素))、结束位置end(数组片断结束处的数组下标,不包含结束索引。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果该参数为负数, 则它表示在原数组中的倒数第几个元素结束抽取)。

splice() 方法可以用于删除数组中的指定元素。使用splice()会影响到原数组,会将指定元素从原数组中删除,并将被删除的元素作为返回值返回。传入三个参数,分别是开始位置、0(要删除的元素数量)、插入的元素,返回空数组。

concat()方法会创建一个当前数组的副本,然后再把它的参数添加到副本末尾,最后返回这个新构建的数组,不会影响原始数组

2)删:pop()、shift()、splice()、slice()

pop() 方法用于删除数组的最后一项,同时减少数组的length值,返回被删除的项。

shift() 方法用于删除数组的第一项,同时减少数组的length值,返回被删除的项。

splice() 方法需要传入两个参数,分别为开始位置,删除元素数量,返回包含删除元素的数组。

slice() 方法用于创建一个包含原有数组中一个或多个元素的新数组,不会影响原始数组。

3)改:splice()、map() 、reduce()

splice() 方法需要传入三个参数,分别是开始位置,要删除元素的数量,要插入的任意多个元素,返回删除元素的数组,对原数组产生影响。

map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。map() 不会对空数组进行检测,不会改变原始数组。

JavaScript面试考点之数组和字符串的常用方法

function(currentValue, index,arr)执行函数(必选)。currentValue必须。当前元素的值;index可选。当前元素的索引值;arr可选。当前元素属于的数组对象

thisValue对象作为该执行回调时使用,传递给函数,用作 “this” 的值。

reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。

JavaScript面试考点之数组和字符串的常用方法

function(total,currentValue, index,arr)用于执行每个数组元素的函数(必选)。

total必需。初始值, 或者计算结束后的返回值。

currentValue必需。当前元素

currentIndex可选。当前元素的索引

arr可选。当前元素所属的数组对象。

initialValue可选。传递给函数的初始值。

4)查:indexOf() 、includes() 、find()、filter()、every()

indexOf() 返回要查找的元素在数组中的第一个索引位置,如果没找到则返回-1。

JavaScript面试考点之数组和字符串的常用方法

a、element是要在数组中检查的元素(必填)

b、fromIndex是要从数组中搜索元素的启始索引或位置(可选)。

includes() 返回要查找的元素在数组中的位置,找到返回true,否则false。

JavaScript面试考点之数组和字符串的常用方法

a、valueToFind是要在数组中检查的值(必填);

b、fromIndex是要开始从中搜索元素的数组中的索引或位置(可选)。

注意:includes和indexOf方法都使用严格的相等性(’===’)搜索数组。如果值的类型不同(例如4和’4’),它们将分别返回false和-1。

find() 返回第一个匹配的元素。如果数组中没有项目符合条件,则返回undefined。

JavaScript面试考点之数组和字符串的常用方法

callback是在数组中的每个值上执行的函数,带有三个参数:

a、element-当前被遍历的元素(必填)

b、index-当前遍历的元素的索引/位置(可选)

c、array- 当前数组(可选)

Array.filter()方法在数组中查找满足特定条件的所有元素。返回的新数组,如果数组中没有项目符合条件,则返回一个空数组。

JavaScript面试考点之数组和字符串的常用方法

a、newArray是返回的新数组。

b、array 是我们要进行查找的数组本身。

c、callback 是应用于数组每个元素的回调函数。

every() 方法用于检测数组所有元素是否都符合指定条件。如果数组中检测到有一个元素不满足,则整个表达式返回false,且剩余的元素不会再进行检测。如果所有元素都满足条件,则返回 true。 every() 不会对空数组进行检测。every() 不会改变原始数组。

总结:

如果你想找到在符合特定条件的阵列中的所有项目,使用filter。

如果你想检查是否至少有一个项目符合特定的条件,请使用find。

如果你想检查一个数组包含一个特定的值,请使用includes。

如果要在数组中查找特定项目的索引,请使用indexOf。

5)排序方法:reverse() 、sort()

reverse() 方法用于颠倒数组中元素的顺序。

sort()方法接受一个比较函数,用于判断哪个值应该排在前面。

6)转换方法:join()

join() 方法接收一个参数,即字符串分隔符,返回包含所有项的字符串。

7)迭代方法:some()、every()、forEach()、filter()、map()

some() 方法对数组每一项都运行传入的函数,如果有一项函数返回 true ,则这个方法返回 true

every() 方法对数组每一项都运行传入的函数,如果每一项函数都返回 true ,则这个方法返回 true

forEach() 方法对数组每一项都运行传入的函数执行某项操作,没有返回值。

filter() 方法对数组每一项都运行传入的函数,过滤函数返回 true 的项,并组成数组之后返回

map() 方法对数组每一项都运行传入的函数,返回由每次函数调用的结果构成的数组。

题目1:查找指定元素在数组中的个数?

a、用 filter 返回删除的数组

JavaScript面试考点之数组和字符串的常用方法

b、用 map 循环,判断条件,变量++

JavaScript面试考点之数组和字符串的常用方法

c、用 reduce 返回累积值

JavaScript面试考点之数组和字符串的常用方法

题目2:计算数组中每个元素出现的次数

a、使用reduce方法

JavaScript面试考点之数组和字符串的常用方法

b、使用map统计

JavaScript面试考点之数组和字符串的常用方法

2、Javscript字符串的常用方法

1)增

除了常用的+以及${}进行字符串拼接之外,还可以通过contact()方法用于讲一个或多个字符串拼接成一个新字符串。

2)删:slice()、substr()、substring()

他们都是返回他们自身字符串的一个子串。可以接受一个(即开始位置到字符串末尾)或两个参数(开始位置到结束位置)。

3)改:不改变原有字符串,创建一个字符串副本

trim()、trimLeft()、trimRight() 方法用于删除前、后或前后所有空格符。

repeat() 方法表示将字符串复制多少次,然后返回。接受一个整数参数。

toLowerCase()、toUpperCase()方法用于大小写转换。

4)查:charAt()、indexOf()、startWith()、includes()

charAt() 方法返回给定索引位置的字符。需传入一个整数参数。

indexOf() 方法返回某个字符在字符串中的位置。需传入一个字符。

startWith() 方法返回一个布尔值,判断字符串是否以传入的字符开头。

includes() 方法返回一个布尔值,判断字符串是否包含传入的字符。

5)转换方法:split()

split() 方法把字符串按照指定的分隔符,返回一个数组。

6)匹配方法:match()、search()、replace()

match() 方法接受一个参数(正则表达式字符串或者正则表达式对象)。返回是一个数组。

search() 方法接受一个参数(正则表达式字符串或者正则表达式对象)。返回是布尔值。

replace() 方法接受两个参数,第一个是匹配的内容,第二个是替换的元素。替换的是第一次匹配到的。

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。