es6中数组的新方法,es6数组新增的特性
本文给大家带来了一些关于javascript的知识,主要介绍了es6数组添加方法的相关问题,包括迭代方法和合并方法。来看看吧,希望对你有帮助。
【相关推荐:javascript视频教程,web前端】
迭代方法:
ECMAScript为数组定义了5种迭代方法。每个方法接收两个参数:一个带每个参数运行的函数,一个可选的scope对象(它影响函数中this的值)作为函数的运行上下文。传递给每个方法的函数接收3个参数:数组元素、元素索引和数组本身。根据具体的方法,这个函数的执行结果可能会也可能不会影响方法的返回值。数组的五种迭代方法如下。
一、map方法:对数组的每一项运行传入的函数,返回每个函数调用结果组成的数组。
也可以理解为:对数组中的每个元素进行特殊处理后,返回一个新的数组。
例如:价格数组
简化前:
让价格=[50,80,90]
prices=prices.map((item,index)={
项目“元”
})
console.log(价格)缩写后:
设价格=[50,80,120]
//在单价后加上“元”
Price=price.map(item=item 元)
Console.log(price)//输出为[50元, 80元, 90元]。它的应用场景,比如:微信小程序的豆瓣影评
使用映射方法将xxx替换为www
replace()方法用于将字符串中的某些字符替换为其他字符,或者替换与正则表达式匹配的子字符串。
Let movies=[{id:1,name:肖申克的救赎,imgur: http://xxx.douban.com/1.jpg}, { ID:2,name:肖申克的救赎,imgur: 3358xxx.douban.com/2.jpg}.
movies=movies.map(item={
item . imgurl=item . imgurl . replace( XXX , www )
退货项目
})
对数组中的每一项运行传入的函数。函数返回true的项将组成一个数组,然后返回。
也可以理解为过滤掉数组中满足要求的元素,返回一个新的数组。
让分数=[80,59,10,55,90,88]
让arr=scores.filter(item={
如果(第60项){
返回true
}
})
Console.log(arr)//输出如下:输出如下:过滤掉小于60的数组。
速记后:
让分数=[80,59,10,55,90,88]
让arr=scores.filter(item=item=60)
Console.log (arr)//(3) [80,90,88]它的应用场景,可以放一个城市名称的数组,然后搜索关键词,只针对小数据。我将在示例后面展示一个图书馆管理系统的应用场景,其中将包括关键字搜索,供您参考。
三和四、some和every方法
有些英文翻译是some,每个翻译都是all,each,所以some方法只要其中一个为真就会返回true。相反,every()方法只有全部返回true才会返回true,即使有false也会返回false。
在判断数组的过程中,判断整体的所有元素是否满足一个基本要求。
某法:真与真,只要有匹配就返回,真。
每一个方法:一个假就是假,只要有一个不符合要求就退回,假。
//让一个班所有学生的成绩看大家是否都过了。
让分数=[80,49,12,50,69]
让result=scores . every(item=item=60)
Console.log(result)//返回false。他们并非都通过了考试。使用场景:前端检查器
在提交AJAX请求之前,通常需要在发送之前通过所有的验证。一个单独的前端数据验证器将在后续的代码示例文章中找到。
归并方法:
二、filter方法:ECMAScript为数组提供了两种合并方法:reduce()和reduceRight()。这两种方法都将迭代数组的所有项,并在此基础上构建最终返回值。reduce()方法从数组中的第一项迭代到最后一项。而reduceRight()从最后一项遍历到第一项。也可以简单理解为:整合一个数组中的元素,返回一个新的内容。
这两种方法都接收两个参数:将为每个项目运行的合并函数,以及将作为合并起点的可选初始值。传递给reduce()和reduceRight()的函数接收四个参数:最后一个合并值、当前项、当前项的索引和数组本身。此函数返回的任何值都将被用作下一次调用同一函数的第一个参数。如果可选的第二个参数(作为merge的起始值)没有传递给这两个方法,那么第一次迭代将从数组的第二项开始,所以传递给merge函数的第一个参数是数组的第一项,第二个参数是数组的第二项。
首先通过下面的代码来理解这个概念:
以下代码中四个参数的含义:
Prev:最后一次操作返回的结果。
项目:此操作的要素。
Index:该操作元素的索引值。
数组:当前操作的数组
让arr=[20,40,50,21]
let values=arr.reduce((prev,item,index,array)={
console.log(prev prev)
console.log(item 项目)
console.log(index 索引)
console.log(array 数组)
console . log( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ )
})五、reduce方法:
为什么只循环了三次?Prev因为可以设置默认值,如果不设置默认值,第一个元素将是第一个prev。
为什么prev在第二和第三个循环中没有定义?在第二个循环中,你要得到第一个循环的返回值。因为在第一个循环中没有设置return,所以会得到未定义的值,依此类推。
输出为:
让arr=[20,40,50,21]
let values=arr.reduce((prev,item,index,array)={
console.log(prev prev)
返回上一项
//进行四次返回循环。第一个输出是prev 20,第二个输出是40 20 60,第三个输出是110。最后的输出是131
})
console . log(values)//131 prev的默认值什么时候必须设置?
给每个数组元素加上li /li。
Let arr=[陈奕迅,杨千嬅, Ku奎基,李克勤]
//设置prev: action 1的默认值。所有元素都参与循环动作2。确定返回的内容。
let result=arr.reduce((prev,item)={
//console.log(上一个)
返回上一个李项目/李
}, )//添加一个空字符串
console . log(result)//李/李丽/李丽奎祺/李丽/李另一种情况:
使用reduce实现数组去重,创建一个空数组,依次遍历原数组。没有空数组就插入,有的就不插入了。
设arr=[张三,李四,李四,王二,李四,马孜,张三]
let result=arr.reduce((prev,item)={
//includes确定存在返回T但不返回f的指定元素。
如果(!上一个包括(项目)){
Prev.push(项目)//。按()将新项目添加到数组中
}
返回上一个
},[])//设置默认空数组
Console.log(result)//(4) [张三,李四,王二,朝子]另一种情况:(reduce方法可以做很多事情)
统计字符的出现次数:参见下面的代码。
设arr=[a , b , a , c , b , a , c]
//返回一个对象来统计每个字符的出现次数{a:2,w:3}
let result=arr.reduce((prev,item)={
////确定对象是否有相应的属性。
如果(上一项){
//找到对应的属性值
上一个[项目]
//如果以后要设置或获取一个对象属性,这个属性用括号[]形式的变量表示,如果是直接。属性名的形式为.
}否则{
prev[item]=1
}
返回上一个
},{})
Console.log (result)//{A: 3,B: 2,C: 2}【相关推荐:javascript视频教程,web前端】以上是ES6数组加法知识总结的详细内容。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。