JS常用方法总结

一:数组

1、改变原数组

  • pop():删除数组末尾的元素,改变数组的长度。
  • push():在数组的末尾添加一个或多个元素,改变数组的长度。
  • shift():删除数组的第一项即数组下标为 0 的项,改变数组的长度。
  • unshift():在数组的开头添加一个或多个元素,改变数组的长度。
  • splice():从数组中添加、删除、替换元素。
  • reverse(): 翻转数组
  • sort(): 排序

2、不改变自身

  • concat():用于连接两个或多个数组,不改变原有的数组,返回一个新的数组。
  • join():将数组(或者类数组对象和可迭代对象)转换为一个字符串,原数组不变,返回一个新的字符串。
  • slice():对于一个有的数组,返回一个从开始下标到结束下标(不包括结束下标)之间的元素组成的新数组。原有的数组并没有被修改,返回一个新的数组。
  • filter():筛选出符合条件的数组元素,创建一个新数组将符合条件的元素加入数组中并返回新数组,原数组不做任何改变。
  • map():将原数组中的每个元素根据提供的回调函数返回一个新的值,不修改原数组,返回一个新数组。

3、数组滤重

将数组转成set后,再转回来

let arr = [1,1,2,2];
let newArr = [...new Set(arr)]; // [1,2]

 如果自己创建的数组,喜欢数组中没有重复的元素。直接用Set代替Array。

Set的has()要比Array的indexOf()效率高很多,在判断某个元素是否在数组中时,建议将Array转成Set。

4.排序

数组的排序方法sort会改变自身,必须传入一个比较函数。没有更方便的方法了,可以给sort封装下

// 只用一次,直接调用sort,传入箭头函数
let arr = [7,8,5,3,10];
arr.sort((a,b)=> a-b);

// 多次使用,封装myArrSort
let anArr = [7,8,5,3,10];
let myArrSort = (oneArr)=> oneArr.sort((a,b)=> a-b);
myArrSort(anArr)

5、循环操作数组

我们经常需要在循环中找到某个符合条件的元素,然后操作该元素。

但是应尽量避免在遍历中对原数组直接进行删除、新增等操作。因为会破坏原本的遍历顺序,可能会导致意料之外的结果。

可以先备份数组,在备份数组上找到符合条件的项,在原数组上进行操作。巧妙的避开风险

// 过滤掉数组中所有的1
const arr = [1, 1, 2, 3, 1, 4, 1];
const copyArr = [...arr];
copyArr.forEach((val, index) => {
    console.log(val);
    if (val === 1) {
        arr.splice(arr.indexOf(val), 1);
    }
});
console.log(arr); // 输出 [2, 3, 4]

不过,确实鸡肋。没有for循环删除后,把下标也减一便捷

二:字符串

在 JavaScript 中,字符串是不可变的(immutable),这意味着字符串一旦创建,就不能被修改。因此,字符串的任何方法都不会修改原始字符串,而是返回一个新的字符串。以下是会返回新字符串的方法:

slice(start,end)
substring(start,end)
substr(start,length)  // 从指定位置开始,提取字符串中指定长度的字符
replace(regex,val) // 用val替换匹配到的字符 
trim() // 清除开头和结尾的空字符
split(str) // 将字符串以str为分隔符,切割成数组
toUpperCase()
toLowerCase()

三:Math常用方法

1、取绝对值

console.log(Math.abs(-19)); // 19

2、取n次方

Math.pow(2,3); // 8

四:力扣刷题经验

1、熟练掌握数组、字符串常用操作方法

2、刷题,从简单的通过率很高的开始,到简单的通过率中等的,再到中等的通过率高的

3、先刷直接处理数据的,再刷有游戏规则的

4、每个题做出来后,都看看别的实现方法。学习语法使用,也学习解题思路

PS:实践

理论需要配合实践才能真正掌握,

哥们全栈写了一套个人博客 ,代码开源,欢迎大家来玩

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sun_qqq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值