ES6数组公式的新增功能,还是很强大的好多地方用的到

Es6数组的扩展
原创
 16:41:51
123
这次给大家带来Es6数组的扩展,Es6数组扩展的有哪些,下面就是实战案例,一起来看一下。数组的扩展1.扩展:可以将数组转化成逗号隔离的单个参数...[1,2,3] //控制台运行报错console.log(...[1,2,3]);//1,2,3(1)代替apply方法function test(a,b){return a+b;}test.apply(null,[1,2]) 同 test(...[1,2]) 作用一样(2)复制数组var arr1 = [1,2,3],var arr2 = [];arr2 = arr1.concat();arr2 = [...arr1] 或 [...arr2] = arr1 //同样可达到复制数组的效果改变arr2的值也不会影响到arr1(3)合并数组将arr2追加到arr1的尾部var arr1 = [1,2,3],arr2 = [4,5,6],arr3;Array.prototype.push.apply(arr1,arr2); 同 arr1.push(...[arr2]);作用一样arr3 = [...arr1,...arr2] //[1,2,3,4,5,6](4)与解构赋值结合来赋值[a,...b] = [1,2,3,4,5] // a---1, b----&[2,3,4,5](5)将转为数组let str = &word&;console.log(...str);//['w','o','r','d']还可以识别unicode编码超过\uFFFF 需要用四个字节表示的字符 var str = &asdc以上就是Es6数组的扩展的详细内容,更多请关注php中文网其它相关文章!
江湖传言:PHP是世界上最好的编程语言。真的是这样吗?这个梗究竟是从哪来的?学会本课程,你就会明白了。
PHP中文网出品的PHP入门系统教学视频,完全从初学者的角度出发,绝不玩虚的,一切以实用、有用...
ThinkPHP是国内最流行的中文PHP开发框架,也是您Web项目的最佳选择。《php.cn独孤九贱(5)-ThinkPHP5视频教程》课程以ThinkPHP5最新版本为例,从最基本的框架常识开始,将...
《php.cn原创html5视频教程》课程特色:php中文网原创幽默段子系列课程,以恶搞,段子为主题风格的php视频教程!轻松的教学风格,简短的教学模式,让同学们在不知不觉中,学会了HTML知识。
本套教程,以一个真实的学校教学管理系统为案例,手把手教会您如何在一张白纸上,从零开始,一步一步的用ThinkPHP5框架快速开发出一个商业项目。
所有计算机语言的学习都要从基础开始,《PHP入门视频教程之一周学会PHP》不仅是PHP的基础部分更主要的是PHP语言的核心技术,是学习PHP必须掌握的内容,任何PHP项目的实现都离不开这部分的内容,通...
本课以最新版ThinkPHP5.0.10为基础进行开发,全程实录一个完整企业点,从后台到前台,从控制器到路由的全套完整教程,不论是你是新人,还是有一定开发经验的程序员,都可以从中学到实用的知识~~
ThinkPHP是一个快速、开源的轻量级国产PHP开发框架,是业内最流行的PHP框架之一。本课程以博客系统为例,讲述如何使用TP实战开发,从中学习Thinkphp的实践应用。模版下载地址:http:/...
本课程是php实战开发课程,以爱奇艺电影网站为蓝本从零开发一个自己的网站。目的是让大家了解真实项目的架构及开发过程
本课以一个极简的PHP开发框架为案例,向您展示了一个PHP框架应该具有的基本功能,以及具体的实现方法,让您快速对PHP开发框架的底层实现有一个清楚的认识,为以后学习其实的开发框架打下坚实的基础。
javascript是运行在浏览器上的脚本语言,连续多年,被评为全球最受欢迎的编程语言。是前端开发必备三大法器中,最具杀伤力。如果前端开发是降龙十八掌,好么javascript就是第18掌:亢龙有悔。...
本站9月直播课已经结束,本套教程是直播实录,没有报上名或者漏听学员福利来了,赶紧看看吧,说不定这里就有你的菜
轻松明快,简洁生动,让你快速走入HTML5的世界,体会语义化开发的魅力
JavaScript能够称得上是史上使用最广泛的编程语言,也是前端开发必须掌握的三技能之一:描述网页内容的HTML、描述网页样式的CSS以及描述网页行为的JavaScript。本章节将帮助大家迅速掌握...
Bootstrap 是最受欢迎的 HTML、CSS 和 JS 框架,用于开发响应式布局、移动设备优先的 WEB 项目。为所有开发者、所有应用场景而设计,它让前端开发更快速、简单,所有开发者都能快速上手...
《php.cn独孤九贱(2)-css视频教程》课程特色:php中文网原创幽默段子系列课程,以恶搞,段子为主题风格的php视频教程!轻松的教学风格,简短的教学模式,让同学们在不知不觉中,学会了CSS知识...
《php用户注册登录系统》主要介绍网站的登录注册功能,我们会从最简单的实现登录注册功能开始,增加验证码,cookie验证等,丰富网站的登录注册功能
jQuery是一个快速、简洁的JavaScript框架。设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的...
《PHP学生管理系统视频教程》主要给大家讲解了HTML,PHP,MySQL之间的相互协作,实现动态的网页显示和获取数据.
《弹指间学会HTML视频教程》从最基本的概念开始讲起,步步深入,带领大家学习HTML,了解各种常用标签的意义以及基本用法,学习HTML知识为以后的学习打下基础
《最新微信小程序开发视频教程》本节课程是由微趋道录制,讲述了如何申请一个微信小程序,以及开发中需要使用哪些工具,和需要注意哪些等。
php中世界最好的语言
全栈工程师
文章总浏览数拒绝访问 | www.colabug.com | 百度云加速
请打开cookies.
此网站 (www.colabug.com) 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(f984382-ua98).
重新安装浏览器,或使用别的浏览器下面是我对ES6和古老的JS(ES3)一些数组操作的总结,附带了一些我曾经用上的。
map处有待更内容。
贴一下有借鉴的网站:
首先先来讲讲ES3的数组方法
split() 方法用于把一个字符串分割成字符串数组。
为什么我们要这要转换呢,比如下文中我们的splice,它只能对数组进行操作,这就要利用到我们的split了。(该方法不改变原数组)
var a=&hello,wold&;
a.split('').splice(8,0,'r');
console.log(a);
// hello,wold
没有改变,虽然 splice 是改变的,但split不改变所以最后不变
我目前使用到的地方比如有
1.rgb颜色值转换为十六进制
const rgb_to_hex = (color) =& {
let rgb=color.split(',');
let r=parseInt(rgb[0].split('(')[1]),
g=parseInt(rgb[1]),
b=parseInt(rgb[2].split(')')[0]);
return '#'+((1&&24)+(r&&16)+(g&&8)+b).toString(16).slice(1);
let color='rgb(10,128,233)';
console.log(rgb_to_hex(color));
这里还用到了parseInt方法将字符串转为数字,默认为十进制。
用到了slice方法,主要是避免当我们r位颜色数字小于16的时候出现#rggbb的情况,因为颜色值应该是六个十六进制数组成的
2.一道OJ题目,输出文件的后缀名
const extname = (filename) =& {
let position =filename.indexOf('.');
if(position!==0 && position!==-1){
filename=filename.split('.');
postfix=filename.pop();
return '.'+postfix
return ''
slice方法:slice(start,end) end是可选参数
如我们上面那个颜色的例子,我们用于将我们的那个1去掉,所以我们slice(1),它规定了从第2位开始取值,因为计算机是从0开始的,看下例
const a=[12,324];
console.log(a.slice(0));
// [12,324];
---& 从第0位开始取
console.log(a.slice(1));
---& 从第1位开始取
1个参数:从开始位置截取到结尾
2个参数:从开始位置截取到结束位置(!不包括结束位置本身哦!厉害的是结束位置还可以是负数!长见识了吧
var a=[1,2,3,5];
console.log(a.slice(2,-1)); //3;
console.log(a.slice(2,3)); //3;
console.log(a.slice(2,4)); //3,5
push方法 :方法可向数组的末尾添加一个或多个元素,并返回新的长度。
好像没有什么可说的?
var a=[1];
a.push(2);
console.log(a); // [1,2]
console.log(a.push(8));
function getArray(str) {
tmp_Array.length = 0;
str = str.split(&,&);
for (var i in str) {
alert(str[i]);
tmp_Array.push(str[i]);
上例将str按&,&分割,并将其添加进tmp_Array数组之中。
pop方法:用于弹出数组最后一个元素,返回该元素的值
其实就是 push 和 pop 就是后进先出的栈数据结构。
var a=[1,2,3];
console.log(a.pop()); //3
console.log(a); //[1,2]
shift:将数组第一个元素从其中删除,并且返回第一个元素的值
和pop差不多
var a=[1,2,3];
console.log(a.shift()); //1
console.log(a); //[2,3]
unshift: 在数组开头添加元素,返回该元素值
pop,unshift,shift,push 这几个都是直接对原数组进行操作的。
unshift和shift组成的数据结构也是栈,只是栈顶和栈尾位置交换了罢了。
var a=[1,2,3];
console.log(a.unshift(4)); //4
console.log(a); //[4,1,2,3]
这里说一句题外话,那么现在,往开头插入数和往尾部插入数都有了,那么该怎么往我们指定的地方插入数字呢?
这里面的学问就很多了,等我们讲完ES6部分的数组操作我们再来回头看一看,标上记号哦,朋友们。
join:将数组元素通过指定的字符连接成字符串(这其实是两句话,1.将每个元素都转成字符串2.用自定义的连接符分割)
它接受0参数或者1个参数,若是传了多个参数只有第一个是有效的。
参数若是为无,默认为','
join不操作原数组
我们来看一个挺有趣的地方
var num=new Array('hello','world');
console.log(num.join());
//hello,world
想象,这和toString方法是不是很像呢,加空格拼接说不定还能造句呢。
如果使用join(&&),返回空白,可以有效判断数组是否是空字符数组
var array=['1','2','3'];
var html=&&h1&&+array.join(&&/h1&&h1&&)+&&/h1&&;
上述可以生成用array作为数据的指定结构的html
还有一个有趣的现象时,join的过程会把 数字 07 中的0去掉?这是 js自己本身的机制。
var array=[07,15];
console.log(array.join('-'));
我们可以用来复制一个数组
var a=&hello,wold&;
a.split('').splice(8,0,'r');
console.log(a);
// hello,wold
b=a.split('').splice(0).join('');
// hello,wold
复制了一个a赋值给b
这里还要提出的一点就是,join的逆向操作就是split
concat:用于连接两个或者多个数组
concat是不会改变原来的数组的
var a=[1,4];
var b=[2,4];
console.log(c.concat(a,b));
// [1,4,2,4]
console.log(a,b);
// [1,4] [2,4]
reverse:用于将数组元素颠倒顺序
无参数,无视参数,!!!!!操作的是数组本身,会改变原数组
var a=[1,2,3,5];
console.log(a.reverse());
// [5,3,2,1]
sort(fn):将数组元素排序: sort() 是会改变原数组的!
参数:fn(a,b):比较函数 ;无参数的时候按照字母表升顺排序;该方法操作的是数组元素本身
var a=[1,2,3,5,10,25];
console.log(a.sort()); // [1,10,2,25,3,5]
看,我们发现了什么?这个排序结果明显不是我们所想要的结果,对吧哈哈?是不是很有趣!
这是因为 sort()默认对每一个 子项 调用转型方法 toString(),之后才进行判断。而这个时候其实是根据 ASCII 码的大小来判断的。因此 &15& & &5&。先比较第一位,再比较第二位。
即使每一项都是 Number ,如果我们不后期加工,sort()比较的也是每一项转化为的String的大小。
参数a,b分别表示数组中的任意两个元素,若 return & 0 则表示 则b前a后(后来居上原则!!死记吧!!)。若 return & 0 则表示 a前b后。
简化: (a-b)从小到大(正序); (b-a)从大到小(逆序)。
var array=[15,5,10,2,0];
array.sort((a,b)=&{return a-b});
console.log(array);
// [0,2,5,10,15]
对简单对象的排序
let obj_list=[{
name:'li',
name:'chen',
name:'huang',
console.log(obj_list.sort((a,b)=&{return a.value-b.value}))
// 排序结果:'huang','li','chen'
在一次面试中,我还得知了这个函数还可以用于随机排序,其实就是利用了sort的特性。官方的sort解释是这样的:
1.可选参数compare需为函数,sort函数使用compare函数比较数组中的两个元素,因此,compare函数需要两个参数compare(a,b)。
2.当compare函数返回任何大于0的值时,它将使第1个参数的索引值小于第2个参数的索引值
3.当compare函数返回任何小于0的值时,它将使第2个参数的索引值小于第1个参数的索引值
所以!!!如果我们要乱序,我们只要让返回的随机数 大于0和小于0 的概率一样即可!上代码:
let array=[1,2,3,5,7,8,11,21,33];
function ran(){
return 0.5 - Math.random();
array.sort(ran());
console.log(array);
[1,11,2,21,3,33,5,7,8]
但是这还不够(试着思考,用户每一次进入游戏都是一样的环境?),我们可以发现,这里的js每一次的运行都是一样,我们需要给它一个每次都改变的种子!----让每一次程序的运行的random()都不一样。
先贴网上的:
但是按照C++和C#的写法貌似应该是根据系统时间改变随机种子。这个以后有时间再写。
splice:用于截取数据,插入数据,删除数据。!!操作的是数据本身
这里郑重地提一句,字符串不能借用splice,即使使用了Array.porotpye.splice.call,因为在规范中,字符串是不可变的,使用splice会改变原数组。所以slice可以在字符串中用,而splice不能。所以,如果我们要在字符串中使用,需要注意。a.转换成数组 b.注意splice返回的是被替换的东西,而不是本身。
参数有三:1.开始位置 2.截断的个数 3.插入的数据
辗转之后,回到了我们的按需插入的问题,但是在这里还是先不细说,待到ES6经验之处,再来好好品评这个问题。
一.当只有1个参数的时候:从开始位置截取剩下的所有数据。slice就像只是我们想象中的裁剪,而splice则是现实中的,从splice中醒来,已是物是人非。splice是直接对数组进行操作的。
var array=[15,5,10,2,0];
console.log(array.slice(1));
// [5,10,2,0]
console.log(array.splice(1)); // [5,10,2,0]
二.若有两个参数,则第一个是删除位置的下标,第二个是从包括下标在内数的删除的数量,结果返回删除的元素,剩余的就是被手术刀裁剪过的数组了。
var array=[15,5,10,2,0];
console.log(array.splice(0,2)); // [15,5]
console.log(array);
// [10,2,0]
三.替换大法瞒天过海,这里是三个参数的,这里返回的值依旧是我们替换掉的那个值,仿佛是要给一个机会让我们去保存它,不让我们忘却历史啊
var array=[15,5,10,2,0];
console.log(array.splice(0,1,4));
console.log(array);
// [4,5,10,2,0]
然后就是添加的功能了,依旧是三个参数,不过是把数量改成0
var array=[15,5,10,2,0];
console.log(array.splice(0,0,4));
console.log(array);
// [4,15,5,10,2,0]
返回的依然是 所被替换的数值 ,因为没有,此处自然为 []
若是直接扩展一个对象函数
Array.prototype.insert = function (index, item) {
this.splice(index, 0, item);
就这样,ES3的数组方法告一段落,下面就是随着时代的进步所衍生出的ES5,6的方法了,我们曾经所有的复杂的,麻烦的操作,在新技术中,都被简化,就像拖把和拖把一样,这就是进步,拥有进步能力的语言往往不容易被这个时代所淘汰。
ES5,6数组操作
indexOf:返回在该数组中第一个找到的元素位置,若不存在则返回 -1
我们可以首先来用ES3来模拟一下先,有助于我们理解。
Array.prototype.indexOf=function(index){
var res=-1,
if(len==0)
for(var i=0;i&i++){
now=this[i];
if(index==now){
var test=['234','23424','30'];
console.log(test.indexOf('30'));
对于正则不好的同学,indexOf是个利器(来自网上的说法),我们演示一下主要用处
let str=&chuyin&;
console.log(str.indexOf('u')); // 2
console.log(str.indexOf('j')); // -1
还需要注意的一点是,数组也和字符串类型一样,拥有这个函数,我们可以数组进行indexOf操作
var arr=['234','orange','apple'];
console.log(arr.indexOf('app'),arr.indexOf('apple'));
forEach:这个依旧是ES5的方法,老实说我没怎么用过,我学习的时候ES6已经出了,这个已经是不推荐的方法了。ES6有个for of和map,为了效率我们还是用最普通的for(;i++)格式。
参数为function类型,默认有传参(遍历数组内容,对应数组索引,数组本身)
在这里引用一个segmentfault的回答:
// 题目是,添加一个 fullName
var users = [
lastName: 'Li',
firstName: 'Lei'
lastName: 'Han',
firstName: 'Meimei'
// 在这里,我们用原始的语法处理
for(var i=0;i&users.i++){
users[i].fullName=users[i].firstName+users[i].lastN
// 分析缺点:我们多了个 i 变量,直观上多了个 for 循环
// 若是用forEach
users.forEach(function(user,index,arr){
user.fullName=user.firstName+user.lastN
console.log(users);
这里,你只需要关注主业务(fullName的生成),无需关注遍历的过程及方法。(来自segmentfault某回答)
但是我觉得是有利有弊的,毕竟其实还是有for循环,降低了效率。而且forEach不能中断,我们不能加一些其他的骚操作。
map:重头戏。我们能够在Redux中的reducer看到大量的map函数,因为redux追求这种函数式极简的酷炫的风格。可以说在react中map的出现率非常高,侧面反映出其非常好用!
map是指映射,和英文中的地图不同。
map不会修改原来的数组。
一.回调函数中0或者1个参数
var a=[1,32,442,234];
b=a.map((item)=&{return item+1;});
// ES6箭头函数语法,看不懂的同学可以先去学下ES6
console.log(a,b);
// [1,32,442,234]
[2,33,443,235]
如果我们什么都不做,则每一项都会返回 undefined
var a=[1,32,442,234];
c=a.map(()=&{});
// 打印 4个 undefined
console.log(c);
二.回调函数中第二个参数 index 的作用,在react中我们主要将它赋值给key
d=a.map((item,i)=&{
console.log(i);
// 0,1,2,3
三.回调函数中第三个参数,包含该元素的数组对象
e=a.map((item,i,array)=&{
console.log(array);
// 最后会打印四遍
[1,34,442,234]
四.map函数中的第二个参数(可选的this)
d=a.map((item,i,array)=&{
console.log(i);
// 0,1,2,3
这种情况在我的实习过程中用过一次,不过是教我的大佬用的,主要是在React中使用,目前不解其意?此处还需学习,待更。
filter:筛选函数
不改变原数组。
以上不改变原数组的函数如果结果需要多次使用,最好都定义一个新的变量来存储。
和map结构差不多,在filter里面包着一个callback回调函数。
让我看一个简短的filter,是不是有一种四两拨千斤的感觉。
flag:false,
name:'lihua'
flag:true,
name:'zengcuo'
console.log(a.filter(item=&item.flag));
// [{flag:true,name:'zengcuo'}]
其实一般的情况是这样的,上面是函数式的写法,所以简洁。PS:偶尔是会出大问题的,函数式,有时候函数式可能会比普通的for循环效率低。
name:'lihua'
name:'zengcuo'
function isBig(element,index,array){
return (element.age&=30);
a.filter(isBig);
console.log(a);
//与原来相同,说明不改变原数组
var filtered=a.filter(isBig);
console.log(filtered); // [{age:100,name:'zengcuo'}]
不定参数和默认参数
!!! 补充一个 fill 方法 !!!!!!!
tmp_Array=getArray(oDiv[1].innerHTML);
oDiv[1].innerHTML=tmp_Array.concat(tmp_Array).toString().replace(/\s/g,&&);
replace为正则中的替换,//中的为正则表达式,g表示全局,\s表示制表符,意为将全部的制表符转化为空,即删去所有制表符。
上例的部分代码
PS:有趣的几个问题
String类型使用splice插入的问题,虽然实现了,但是非常麻烦
var a=&hello,wold&;
// 因为a是String类型,不能直接使用Array类型的方法splice
// a.splice(8,0,'r');
a.splice is not a function
b=a.split('');
b.splice(8,0,'r');
b=b.join('');
console.log(a,b);
阅读(...) 评论()ES6---数组array新增方法
let arr=[1,2,234,'sdf',-2];
arr.find(function(x){
return x&=2;
arr.find(function(x,i,arr){
if(x&2){console.log(x,i,arr)}
find的参数为回调函数,回调函数可以接收3个参数,值x、所以i、数组arr,回调函数默认返回值x。
●findIndex :
let arr=[1,2,234,'sdf',-2];
arr.findIndex(function(x){
return x&=2;
arr.findIndex(function(x,i,arr){
if(x&2){console.log(x,i,arr)}
findIndex和find差不多,不过默认返回的是索引。
●includes:
let arr=[1,2,234,'sdf',-2];
arr.includes(2);// 结果true,返回布尔值
arr.includes(20);// 结果:false,返回布尔值
arr.includes(2,3)//结果:false,返回布尔值
includes函数与string的includes一样,接收2参数,查询的项以及查询起始位置。
let arr=[1,2,234,'sdf',-2];
for(let a of arr.keys()){
console.log(a)
keys,对数组索引的遍历
let arr=[1,2,234,'sdf',-2];
for(let a of arr.values()){
console.log(a)
keys,对数组项的遍历
●entries:
let arr=['w','b'];
for(let a of arr.entries()){
console.log(a)
for(let [i,v] of arr.entries()){
console.log(i,v)
entries,对数组键值对的遍历。
let arr=['w','b']
arr.fill('i')//结果:['i','i'],改变原数组
arr.fill('o',1)//结果:['i','o']改变原数组,第二个参数表示填充起始位置
new Array(3).fill('k').fill('r',1,2)//结果:['k','r','k'],第三个数组表示填充的结束位置
fill方法改变原数组,当第三个参数大于数组长度时候,以最后一位为结束位置。
●Array.of():
Array.of('w','i','r')//["w", "i", "r"]返回数组
Array.of(['w','o'])//[['w','o']]返回嵌套数组
Array.of(undefined)//[undefined]依然返回数组
Array.of()//[]返回一个空数组
Array.of()方法永远返回一个数组,参数不分类型,只分数量,数量为0返回空数组。
●copyWithin:
["w", "i", "r"].copyWithin(0)//此时数组不变
["w", "i", "r"].copyWithin(1)//["w", "w", "i"],数组从位置1开始被原数组覆盖,只有1之前的项0保持不变
["w", "i", "r","b"].copyWithin(1,2)//["w", "r", "b", "b"],索引2到最后的r,b两项分别替换到原数组1开始的各项,当数量不够,变终止
["w", "i", "r",'b'].copyWithin(1,2,3)//["w", "r", "r", "b"],强第1项的i替换为第2项的r
copyWithin方法接收三个参数,被替换数据的开始处、替换块的开始处、替换块的结束处(不包括);copyWithin(s,m,n).
●Array.from():
Array.from({'0':'w','1':'b',length:2})
Array.from({'0':'w','1':'b',length:4})
Array.from({'0':'w','1':'b',length:1})
let divs=document.getElementsByTagName('div');
Array.from(divs)
Array.from('wbiokr')
Array.from([1,2,3],function(x){
return x+1})
Array.from可以把带有lenght属性类似数组的对象转换为数组,也可以把字符串等可以遍历的对象转换为数组,它接收2个参数,转换对象与回调函数
JS中数组的常用方法(包含es6扩展)
ES6数组(Array)对象
ES6数组方法
ES6学习之路5----数组方法
ECMAScript5(ES5)标准中扩展的数组Array方法
ES6---字符串新增方法
整理ES6中常用的几个数组API
es6数组方法
es6数组方法
ES6常用的数组方法
没有更多推荐了,ES6学习笔记(ES6新增的数组方法)
1、Array.from()方法
Array.from()方法是用于类似数组的对象(即有length属性的对象)和可遍历对象转为真正的数组。
比如,使用Array.from()方法,可以轻松将JSON数组格式转为数组。
let json ={
'0':'hello',
'1':'123',
'2':'panda',
let arr = Array.from(json);
console.log(arr);
控制台打印结果:["hello", "123", "panda"]
2、使用Array.of()方法
Array.of()方法是将一组值转变为数组。
let arr0 = Array.of(1,2,33,5);
console.log(arr0);//[1,2,33,5]
let arr1 = Array.of('你好','hello');
console.log(arr1);//["你好", "hello"]
3、find()方法
数组实例的find方法用于找出第一个符合条件的数组成员。参数是个回调函数,所有数组成员依次执行该回调函数,直到找到第一个返回值为true的成员,然后返回该成员。如果没有符合条件的成员,就返回undefined;
如:回调函数可以接收3个参数,依次为当前的值(value)、当前的位置(index)、原数组(arr)
let arr2 = [1,2,3,5,7];
console.log(arr2.find(function(value,index,arr2){
return value & 5;
控制台打印结果:7
4、fill()方法
使用fill()方法给定值填充数组。
fill方法用于空数组的初始化很方便:new Array(3).fill(7);//[7,7,7]
fill方法还可以接收第二个和第三个参数,用于指定填充的起始位置和结束位置:
let arr3 = [0,1,2,3,4,5,6,7];
arr3.fill('error',2,3);
console.log(arr3);
5、遍历数组的方法:entries()、values()、keys()
这三个方法都是返回一个遍历器对象,可用for...of循环遍历,唯一区别:keys()是对键名的遍历、values()对键值的遍历、entries()是对键值对的遍历。
for(let item of ['a','b'].keys()){
consloe.log(item);
for(let item of ['a','b'].values()){
consloe.log(item);
let arr4 = [0,1];
for(let item of arr4.entries()){
console.log(item);
for(let [index,item] of arr4.entries()){
console.log(index+':'+item);
如果不用for...of进行遍历,可用使用next()方法手动跳到下一个值。
let arr5 =['a','b','c']
let entries = arr5.entries()
console.log(entries.next().value)
console.log(entries.next().value)
console.log(entries.next().value)
console.log(entries.next().value)
ES6数组新增的几个方法
ES6---数组array新增方法
没有更多推荐了,}

我要回帖

更多关于 数组新增 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信