美文网首页
js常用算法总结一

js常用算法总结一

作者: 腾蛇太元帅 | 来源:发表于2023-07-23 08:23 被阅读0次

1、reduce用法(重)

数组名.reduce(function(pre, currentValue, currentIndex, arr), [初始赋值])

recude函数接收两个参数,一个为回调函数,一个为初始赋值

第一个参数的回调函数又接收四个参数,分别为(初始值或计算结束后的返回值,当前元素,[当前元素的索引](若有初始赋值,则从0开始,否则从1开始),[当前元素所属的数组对象])

第二个参数是传给函数的初始值,非必传。(若有初始值,则接受的第一个函数就是初始赋值)

作用:计算数组内元素的总和、总积等;计算数组中每个元素出现的次数;数组去重;数组扁平化,即可以将不同维数组转成一维数组;对象属性求和。

2、常用方法

变量.toString(),将某型变量转换为字符串;字符变量.trim(),去掉两边的空格;字符变量.split(‘ ’),将该字符变量以空格分成若干字符;

3、反转数组

数组名.reverse();

4、反转字符串

split(");根据空字符串拆分数组

reverse();数组反转元素位置

join('');数组转回字符串,且不带分隔符

let a = b.split('').reverse().join('')//将字符串b反转后得到字符串a

5、方法如何得到调用自己的变量信息

可以使用this来得到调用自己的变量信息

例如:

function a(){

return this[this.length-1]

}

let arr=[1,2]

arr.a()//2

a()中的this就可以代指arr,该方法是得到一个数组的最后一值。

6、判断对象是否为空

一:将对象转成JSON字符串,再判断是否等于“{}”

console.log{JSON.stringify(对象名)==="{}"}//若为空则true,不为空则false

二:Object.keys()写法,返回对象的属性名组成的一个数组,若长度为0,则为空对象(ES6写法)

console.log(Object.keys(对象名).length==0)//若为空则true,不为空则false

7、数组转成JSON字符串

空数组转为JSON字符串则等于“[]”,转成JSON方法等于6.1。

8、错误抛出

使用throw可以抛出错误,语法为:throw new Error(要输出的语句);可以理解为log,只不过是在不符合条件时使用。例如当判断a是否等于b,若是等于则输出{"value": true},不等于则输出{"error": "Not Equal"},此时可写为:

if(a=b){

console.log('true')

} else {

throw new Error('Not Equal')

}

9、生成器函数( function*() )

function* 是 JavaScript 中用来定义生成器函数(Generator Function)的语法。生成器函数是一种特殊类型的函数,可以暂停执行并在稍后的时间继续执行。它们通过使用 yield 关键字来产生(yield)一个值,并且在产生值后会暂停执行,等待下一次的调用继续执行。当生成器函数被调用时,它会返回一个生成器对象,该对象可以通过调用 next() 方法来控制生成器函数的执行。每次调用 next() 方法时,生成器函数会从上一次暂停的地方继续执行,直到遇到下一个 yield 关键字,再次产生一个值并暂停执行。next() 方法的返回值是一个包含 value 和 done 两个属性的对象。value 属性包含了生成器函数产生的值,done 属性表示生成器函数是否已经执行完毕。

10、剩余参数( function(...args) )

这个语法允许函数接受可变数量的参数,并将它们作为一个数组(或类数组对象)存储在函数的参数中。使用剩余参数语法,可以定义接受任意数量参数的函数,而不需要在函数定义时指定具体的参数数量。这对于需要处理变长参数的情况非常有用,可以提高函数的灵活性和可复用性

11、判断数组中是否有某元素

一:indexOf

语法:数组名.indexOf(要判断的元素);若存在则返回第一次出现的索引,不存在返回-1

二:find

数组名.find(function(value,index,arr){

if(value==要判断的值){

console.log("存在",index)

}

})

若存在则输出所有索引,不存在则返回undefined

12、Array.map方法

map 映射

初步理解为对数组的所有元素进行一个相同的变化,例如:

let arr = [1,2,3]

let arr1 = arr.map(x => x+1)

则得到arr1 = [2,3,4]

注意:map并不改变原来的数组;不会对空数组进行检测。

13、较为常用得Math方法

round();四舍五入,原理是加0.5后向下取整,因此对于负的0.5来说,round后是0,而不是-1;

14、lodash数组方法_.chunk、_.compact、_.concat、_.difference、_.differenceBy、_.drop

使用步骤:

1、安装Lodash:npm  i--save lodash;

2、引入:const _ = require("lodash");

3、使用:_.方法名();

作用:

chunk:将数组拆分为多个相同长度的区块,若最后不足,则独自成一块;语法:_.chunk(arr,x);其中arr为数组,x为每块的元素数;

compact:将数组中非假值元素去除,非假值元素有false、null、0、”“、undefined和NaN等;语法:_.compact(arr);其中arr为数组

cocat:将两个数组或数组和其他数字、字符等相连;语法:_.concat(arr1,arr2);将两个数组相连放到一个数组中,_.concat(arr1,1);将元素1加入arr1中返回一个新数组;concat后的括号内没有个数限制。

difference:找出两个数组中的不同值,新数组的顺序由第一个决定;语法:_.difference(arr1,arr2)

differenceBy:找出两个数组中的不同值,有一个限定条件,返回数组中仍然是原来数组的元素,不是经过限定条件修改后的;语法:_.differenceBy(arr1,arr2,条件)

drop:去除数组中前n个元素,n默认为1;语法:_.drop(arr,[n])

相关文章

  • 总结几种常用的安全算法

    总结几种常用的安全算法

  • 常用排序算法

    常用的排序算法 在此总结一下常用排序算法的代码实现 #include using namespace std;t...

  • encyption&decyption

    0, 常用加密算法的Java实现(一) ——单向加密算法MD5和SHA 常用加密算法的Java实现总结(二) ...

  • js常用算法

    数组去重: 阶乘 生成菲波那切数列 二分查找 实现栈的功能 定义一个栈 实现栈的pop,push 实现链表的fin...

  • js 常用算法

  • js常用算法

    虽说我们很多时候前端很少有机会接触到算法,但对算法的理解和掌握是一个优秀工程师的评价标准之一,而且当我们面对较为复...

  • js常用算法

    算法基础知识 一 :排序 二 :去重 三:查找某项在数组中的索引值(二分查找) 四 :广度与深度优先遍历 操作树型...

  • js常用算法

    对数 如果a^x=N(a>0,且a≠1),则x叫做以a为底N的对数,记做x=log(a)(N),其中a要写于log...

  • JS常用算法

    排序算法 一、冒泡排序 冒泡排序比较任意两个相邻的项,如果第一个比第二个大,则交换他们 二、选择排序 选择排序是找...

  • 常用的算法总结

    风控模型常用的算法总结 一、常用算法 监督算法 随机森林采用投票机制,xgb则是弱学习机的集合。随机森林关注方差,...

网友评论

      本文标题:js常用算法总结一

      本文链接:https://www.haomeiwen.com/subject/wtsfpdtx.html