likes
comments
collection
share

字符串、数组、数学对象各种常用方法总结

作者站长头像
站长
· 阅读数 57

字符串

字符串、数组、数学对象各种常用方法总结

细节点

  • 在JavaScript中,单引号、双引号、反引号包起来的都是字符串,每个字符串由多个字符组成,它和数组类似,也有自己的索引。

  • 空字符串和空格不是一回事,空格要占一个字符

  • 每个字符串的方法通过以下四个方面进行研究和学习:

    • 方法的意义以及作用
    • 参数
    • 方法的返回值
    • 每一个操作都是直接操作值,对原始字符串不会产生任何影响

查找字符串

charAt([index])

  • 作用及意义:根据索引获取指定位置的字符
  • @params:索引
  • @return:索引对应的字符
  • 是否改变原字符串:不改变
  • 注意:直接基于索引获取字符,在当前索引并不存在的前提下,获取到的为空字符串,而基于 字符串[索引] 获取到的是undefined。 字符串、数组、数学对象各种常用方法总结 字符串、数组、数学对象各种常用方法总结

charCodeAt([index])

  • 作用及意义:在charAt的基础上获取指定索对应字符的UNICODE编码
  • @params:索引
  • @return:UNICODE编码
  • 是否改变原字符串:不改变

字符串、数组、数学对象各种常用方法总结 字符串、数组、数学对象各种常用方法总结

String.fromCharCode([UNICODE编码])

  • 作用及意义:获取UNICODE编码对应的字符
  • @params:UNICODE编码
  • @return:UNICODE编码对应的字符
  • 是否改变原字符串:无

字符串、数组、数学对象各种常用方法总结 字符串、数组、数学对象各种常用方法总结

字符串截取

substr(n,m)

  • 作用及意义:从索引n开始截取m个字符
  • @params:n,m
  • @return:截取的字符串
  • 是否改变原字符串:不改变

字符串、数组、数学对象各种常用方法总结 字符串、数组、数学对象各种常用方法总结

substring(n,m)

  • 作用及意义:从索引n开始,找到索引为m,但是不包含m,找到的截取
  • @params:n,m
  • @return:截取的字符串
  • 是否改变原字符串:不改变

字符串、数组、数学对象各种常用方法总结 字符串、数组、数学对象各种常用方法总结

slice(n,m)

  • 作用及意义:作用类似于substring,但是slice支持以负数为索引
  • @params:n,m
  • @return:截取的字符串
  • 是否改变原字符串:不改变
  str.substring(0);//字符串克隆
  str.slice(-6,-3);//索引从末尾开始,从倒数第六个截取到倒数第三个;第一个参数要比第二个小
  str.slice(str.length-6,str.length-3);//等价于上边的写法

字符串、数组、数学对象各种常用方法总结 字符串、数组、数学对象各种常用方法总结

检测是否包含某项

indexOf(str,n)

  • 作用及意义:获取在当前字符串中第一次出现所在位置的索引,n控制从哪个地方开始
  • @params:str,n
  • @return:索引
  • 是否改变原字符串:不改变
  • 注意:
    • 1.如果不包含则返回-1;
    • 2.整体与数组中方法类似;
    • 3.兼容所有版本浏览器

字符串、数组、数学对象各种常用方法总结 字符串、数组、数学对象各种常用方法总结

str.lastIndexOf(searchValue[, fromIndex])

  • 作用及意义:获取searchValue最后一次出现位置的索引,该索引是searchValue首字母所在索引
  • @params:searchValue 一个字符串,表示被查找的值。如果searchValue是空字符串,则返回fromIndex。fromIndex待匹配字符串searchValue的开头一位字符从 str的第fromIndex位开始向左回向查找。前提是包含searchValue
  • @return:首字母索引
  • 是否改变原字符串:不改变

字符串、数组、数学对象各种常用方法总结 字符串、数组、数学对象各种常用方法总结

includes(str)和数组中同样的效果

  • 作用及意义:验证是否包含某个字符串
  • @params:该字符串
  • @return:true/false
  • 是否改变原字符串:不改变

字符串、数组、数学对象各种常用方法总结 字符串、数组、数学对象各种常用方法总结

转换大小写

toLowerCase()

  • 作用及意义:将字符串转为小写
  • @params:该字符串
  • @return:转换为小写字符串的结果
  • 是否改变原字符串:不改变

字符串、数组、数学对象各种常用方法总结 字符串、数组、数学对象各种常用方法总结

toUpperCase()

  • 作用及意义:将字符串转为大写
  • @params:该字符串
  • @return:转换为大写字符串的结果
  • 是否改变原字符串:不改变

字符串、数组、数学对象各种常用方法总结 字符串、数组、数学对象各种常用方法总结

分隔

split([分隔符])

  • 作用及意义:把字符串按照指定的分隔符拆分成数组(和数组中的join对应)该字符串必须包含该分隔符
  • @params:分隔符
  • @return:分隔后的数组
  • 是否改变原字符串:不改变

字符串、数组、数学对象各种常用方法总结 字符串、数组、数学对象各种常用方法总结

替换

replace(regexp/substr, newSubstr/function)

  • 作用及意义:以某种方式替换原部分字符串 参考--MDN
  • @params:(regexp/substr, newSubstr/function)
  • @return:新字符串
  • 是否改变原字符串:不改变

字符串、数组、数学对象各种常用方法总结 字符串、数组、数学对象各种常用方法总结

去空格

trim()

  • 作用及意义:去除首尾空格
  • @params:无
  • @return:去除空格后的字符串
  • 是否改变原字符串:不改变

trimLeft()

  • 作用及意义:去除首尾空格
  • @params:无
  • @return:去除空格后的字符串
  • 是否改变原字符串:不改变

trimRight()

  • 作用及意义:去除首尾空格
  • @params:无
  • @return:去除空格后的字符串
  • 是否改变原字符串:不改变

字符串、数组、数学对象各种常用方法总结 字符串、数组、数学对象各种常用方法总结

数组

字符串、数组、数学对象各种常用方法总结

增删改(均改变原数组)

push

  • 作用及意义:向数组的末尾追加元素
  • @params:追加的项(多个任意类型)
  • @return:新增数组的长度
  • 是否改变原数组:改变

字符串、数组、数学对象各种常用方法总结 字符串、数组、数学对象各种常用方法总结

unshift

  • 作用及意义:向数组的开头追加元素
  • @params:追加的项(多个任意类型)
  • @return:新增数组的长度
  • 是否改变原数组:改变

字符串、数组、数学对象各种常用方法总结 字符串、数组、数学对象各种常用方法总结

shift

  • 作用及意义:删除数组开头项
  • @params:无
  • @return:删除开头具体那一项
  • 是否改变原数组:改变

字符串、数组、数学对象各种常用方法总结 字符串、数组、数学对象各种常用方法总结

pop

  • 作用及意义:删除末尾的元素
  • @params:无
  • @return:删除那一项
  • 是否改变原数组:改变

字符串、数组、数学对象各种常用方法总结 字符串、数组、数学对象各种常用方法总结

splice

  • 作用及意义:实现数组增加、删除、修改
  • 用法:从索引n开始,删除m个元素(m不写删除到末尾),用x占用替补删除的部分。
  • @params:n,m,x
  • @return:修改后的新数组
  • 是否改变原数组:改变
【删除】返回的是包含删除项的数组
  • ary.splice(0);可以清空数组,把原始数组的内容基于新数组保存起来,数组克隆。

字符串、数组、数学对象各种常用方法总结

字符串、数组、数学对象各种常用方法总结

  • ary.splice(ary.length-1);删除最后一项

字符串、数组、数学对象各种常用方法总结

字符串、数组、数学对象各种常用方法总结

  • ary.splice(0,1);删除第一项

字符串、数组、数学对象各种常用方法总结

字符串、数组、数学对象各种常用方法总结

【增加】ary.splice(n,0,x);在索引n的前面添加了x项;
  • ary.splice(ary.length,0,x);在数组后面增加项

字符串、数组、数学对象各种常用方法总结

字符串、数组、数学对象各种常用方法总结

  • ary.splice(0,0,x);在数组前面增加x项。

字符串、数组、数学对象各种常用方法总结

字符串、数组、数学对象各种常用方法总结

字符串、数组、数学对象各种常用方法总结

字符串、数组、数学对象各种常用方法总结

【修改】用x代替删除的m即可

字符串、数组、数学对象各种常用方法总结 字符串、数组、数学对象各种常用方法总结

查询和拼接

slice

  • 作用及意义:实现数组的查询
  • 用法:ary.slice(n,m)=>从索引n开始,找到索引为m处,不包含m
  • @params:n,m
  • @return:把找到的部分以新数组返回
  • 是否改变原数组:不改变

字符串、数组、数学对象各种常用方法总结

字符串、数组、数学对象各种常用方法总结 n和m取不同值的不同情况

  • m&n都为负数情况
  • n>m
  • m&n都为小数
  • 都是非有效数字
  • n/m有一个大于索引

concat

  • 作用及意义:实现数组合并
  • @params:拼接的项多个任意值
  • @return:拼接后的新数组
  • 是否改变原数组:不改变

字符串、数组、数学对象各种常用方法总结 字符串、数组、数学对象各种常用方法总结

转字符串

toString

  • 作用及意义:把数组转换为字符串
  • @params:无
  • @return:转换后的字符串,且每一项都用逗号分割
  • 是否改变原数组:不改变

字符串、数组、数学对象各种常用方法总结 字符串、数组、数学对象各种常用方法总结

join

  • 作用及意义:把数组转换为字符串
  • @params:指定分隔符,字符串类型,不写默认为逗号
  • @return:转换后的字符串割
  • 是否改变原数组:不改变

字符串、数组、数学对象各种常用方法总结 字符串、数组、数学对象各种常用方法总结

let ary = [1,2,3];
let res = ary.join('+');
let result = eval(res);//将字符串转换为JS表达式,并计算出结果

是否包含某一项

indexOf

  • 作用及意义:查找指定字符串第一次出现的位置索引值
  • @params:指定查找的字符串
  • @return:位置索引值(数字),如果数组中没有这一项,返回的结果是-1
  • 是否改变原数组:不改变

字符串、数组、数学对象各种常用方法总结 字符串、数组、数学对象各种常用方法总结

lastindexOF

  • 作用及意义:查找指定字符串最后一次出现的位置索引值
  • @params:指定查找的字符串
  • @return:位置索引值(数字),如果数组中没有这一项,返回的结果是-1
  • 是否改变原数组:不改变

includes(ES6)

  • 作用及意义:检测当前数组中是否包含某项
  • @params:检测的具体某一项
  • @return:true/false
  • 是否改变原数组:不改变

字符串、数组、数学对象各种常用方法总结 字符串、数组、数学对象各种常用方法总结

排序和排列(改变原数组)

reverse

  • 作用及意义:将数组倒过来排列
  • @params:无
  • @return:排列后的新数组
  • 是否改变原数组:改变

字符串、数组、数学对象各种常用方法总结 字符串、数组、数学对象各种常用方法总结

sort

  • 作用及意义:将数组中的每项有序排列
  • @params:无|函数

无参数:会按照基数排序思想进行排序。函数:(a,b)=>a-b或者(a,b)=>a-b,前者升序,后者降序

  • @return:排序后的新数组
  • 是否改变原数组:改变

字符串、数组、数学对象各种常用方法总结 字符串、数组、数学对象各种常用方法总结

遍历和映射(不改变原数组)

forEach

  • 作用及意义:遍历数组中的每一项
  • @params:callback
  • @return:无/undefined
  • 是否改变原数组:不改变

字符串、数组、数学对象各种常用方法总结 字符串、数组、数学对象各种常用方法总结

map

  • 作用及意义:数组映射
  • @params:callback
  • @return:映射后的新数组
  • 是否改变原数组:不改变

字符串、数组、数学对象各种常用方法总结 字符串、数组、数学对象各种常用方法总结

reduce

  • 作用及意义:数组映射
  • @params:callback
  • @return:由累加器记录每一次执行reducer函数,最后输出单个结果
  • 是否改变原数组:不改变
  • 字符串、数组、数学对象各种常用方法总结 字符串、数组、数学对象各种常用方法总结
  • 基于reduce实现compose组合函数:把函数嵌套调用扁平化
function compose(...funcs){
    return function anonymous(...args){
        if(funcs.length===0) return args;
        if(funcs.length===1) return funcs[0](...args);
        return funcs.reduce((N,func)=>{
            return Array.isArray(N)?func(...N):func(N)
        },args)
    }
}

filter

  • 作用及意义:过滤数组中的每一项
  • @params:callback
  • @return:过滤为true的每一项组成的新数组
  • 是否改变原数组:不改变

字符串、数组、数学对象各种常用方法总结 字符串、数组、数学对象各种常用方法总结

some

  • 作用及意义:数组中存在一个符合函数条件的即可
  • @params:callback
  • @return:true/false
  • 是否改变原数组:不改变

字符串、数组、数学对象各种常用方法总结

every

  • 作用及意义:数组中全部符合函数条件才可以
  • @params:callback
  • @return:true/false
  • 是否改变原数组:不改变

字符串、数组、数学对象各种常用方法总结

find

  • 作用及意义:在数组中找第一个符合条件元素
  • @params:callback
  • @return:找到的那一项
  • 是否改变原数组:不改变

字符串、数组、数学对象各种常用方法总结

字符串、数组、数学对象各种常用方法总结

数学对象常用方法

方法罗列

Math.abs([N]);//获取数字N的绝对值
Math.ceil([N]);//对数字N进行向上取整
Math.floor([N]);//对数字进行向下取整
Math.round([N]);//表示对数学N进行四舍五入
Math.max(N1,N2,...Nn);//在一组数中求出最大值
Math.min(N1,N2,...,Nn);//在一组数中求出最小值
Math.pow([N1],[m]);//获取数字N的m次幂
Math.sqxrt([N]);对数字N进行开平方
Math.radom();获取0~1之间的随机小数,每一次获取的小数都不一样

经典案例

  • 获取[n,m]之间的随机整数 Math.round(Math.radom()*(m-n)+n);
转载自:https://juejin.cn/post/6844904148157251591
评论
请登录