前端面试题:数组、字符串方法

数组

  1、push:   末尾添加元素,改变原数组

  2、pop:    删除并返回最后一个元素,改变原数组

  3、unshift:    开头添加一个元素,改变原数组

  4、shift:   删除第一项,改变原数组

  5、concat:  合并数组并生成一个新数组,不改变原数组

  6、join:     把数组分割为字符串,默认为 ','

  7、reverse:  反转数组(倒序),改变原数组

  8、sort:    排序,默认为升序, 改变原

     用法:

        arrar.sort((a, b) => a - b)  升序

        arrar.sort((a, b) => b - a)  降序

  9、map:    循环,返回新数组,不改变原数组

  10、forEach:循环,改变原数组

  11、filter:   过滤,符合条件并生成新数组,不改变原数组

  12、every:  所有元素都符合条件返回true,否则返回false。 等同于&

  13、some:  有一个元素符合条件就返回true,否则返回false。等同于 | |

  14、includes: 数组是否包含某一项

  15、indexOf: 查找元素,返回index(若没有查到,则返回 -1)

  16、lastIndexOf: 从末尾开始查找元素

  17、reduce:   累加器

      4个参数:前一值,当前值,索引,数组对象

      一项一项迭代到下一项

  18、reduceRight: 反向累加器,与上述reduce同理

  19、slice:  截取,从start开始,end(不包含)结束,都可以为负数(负数倒数),end默认为数组长度  

  20、splice: 可删可增可改,改变原数组

  21、Array.isArray(): 判断是否为数组

  

  数组乱序:

    const arrar = [1, 2, ...]

    arrar.sort(() => Math.random() - 0.5)

  数组拆解(数组扁平化):

    const arr = [1, 3, [7, 4, 2]]

      想要效果:[1, 3, 7, 4, 2]

    I:arr.toString().split(',')

    II:arr.flat(Infinity)

    iii:递归/reduce+concet

 

字符串

 

  字符串所有方法都返回新字符串,不会更新原字符串

  1、indexOf/lastIndexOf:  查找目标在字符串中的位置(索引),两参(目标, 指定位置开始),返回索引

  2、search:   搜索特定字符串,并返回位置

  3、slice:    提取字符串内容,参数: 起始索引, 终止索引(不包含终止索引,默认为字符串长度), 参数可以为负数

  4、substring: 与slice一样,但不接受负数

  5、substr:   截取,参数:起始位置,切割长度(不能为负数)

  6、toUpperCase:  转换成大写

     toLowerCase:  转换成小写

  7、trim:    删除字符串两端的空白,只能删除左右两端

  8、concat:  连接字符串,与 + 相同

  9、charAt(索引值):  返回指定下标的字符串

  10、split:    字符串分割为数组,默认','

  11、replace(被替换,替换): 替换内容,只替换一次;

     replaceAll(被替换,替换): 替换内容,替换所有;

  12、startWith/endsWith:  判断字符串是否为开头/结尾,返回true/false,大小写敏感

  13、includes('查找项', 开始索引):  判断字符串是否包含查找项,返回true/false

  14、match(regExp):  匹配字符串是否满足正则表达式规则

  15、toString():  转换(几进制)

  16、repeat():    将原字符串重复几次,如果是小数,会向下取整

  17、padStart/padEnd: 用于补全头部/尾部

 

posted @ 2023-10-25 18:45  HandsomeGuy  阅读(21)  评论(0编辑  收藏  举报