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])
网友评论