ES6 — 数组Array
ES6对数组引入了几个新函数:
(1) Array.of()
作用是将一组数值,转换为数组。
Array.of(1,2,3,4); //[1,2,3,4]
(2) Array.from()
作用是把类数组的对象或者可遍历的对象变为真正数组,并返回此数组。
let ele=document.getElementsByTagName('a');
ele instanceof Array; //false
ele instanceof Object; //true
我们使用Array.from()可以把对象转为数组:
Array.from(ele) instanceof Array //true
字符串处理:
let str='hello';
Array.from(str); //['h','e','l','l','o']
(3) find() 函数
作用是在数组中找到符合条件的第一个元素。其参数为一个匿名函数。
let arr=[1,2,3,4,5,3];
arr.find(function( value ){
return value>2; //3
// return value>6; //当没有找到符合条件的元素时返回 undefined;
}) ;
(4) findIndex() 函数
作用是返回符合条件的第一个元素在数组中的下标。
let arr=[7,8,9,10];
arr.findIndex(function( value ){
return value>8; //2 ,没有找到时返回-1
})
可以看到 findIndex()和find()的函数的用法相同,作用也基本相同,只是一个返回元素值,一个返回元素的下标。
(5) fill() 函数
作用用指定的值填充数组。
let arr=[1,2,3];
arr.fill(4); //arr=[4,4,4] 默认为全部填充;
arr.fill(4,1,3); //arr=[1,4,4] 第一个参数为要填充的元素,后两个参数表示填充范围的下标为 >=1 && <3 ,即下标为1,2的位置。当最后一个参数超出数组时,则填充到结尾。
(6) entries() 函数
作用对函数的键值进行遍历,返回一个遍历器(即遍历结果),可以用for...of对其遍历。
for(let [i,v] of ['a','b'].entries()){
console.log(i,v);
}
得到数组的键值为:0,1 ,相应的值为: 'a'和'b'。
(7) keys() 函数
作用对数组的索引键进行遍历,返回一个遍历器。
for (let index of ['a','b'].keys()){
console.log(index)
}
(8) values() 函数
作用只对数组的元素进行遍历,返回一个遍历器。
for (let value of ['a','b'].values()){
console.log(value);
}
//a
//b
(9) 数组推导:用简洁的写法,直接通过现有的数组生成新的数组。
传统的写法:
var arr1=[1,2,3];
var arr2=[];
for (let i=0;i<arr1.length;i++){
arr2.push(arr1[i]*2);
}
或者可以使用forEach:
arr1.forEach(function(i){
arr2.push(i*2);
});
新写法:(但是测试发现,chrome还不支持这种写法,Firefox支持。)
var arr1=[1,2,3];
var arr2=[for(i of arr1)i*2]; //2,4,6
还可以加上if判断:
var arr3=[for(i of arr2) if(i>3) i]; //4,6
___________________________
参考公众号:web前端教程
ES6 — 数组Array的更多相关文章
- es6 --数组--Array.from() 、Array.isArray()、Array.of()、find()、findIndex()、fill()、entries() 、keys() ,values()
将两类对象转为真正的数组 Array.from()方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括ES6新增的数据结构Se ...
- ES6数组的扩展--Array.from()和Array.of()
一. Array.from() : 将伪数组对象或可遍历对象转换为真数组 1.何为伪数组 如果一个对象的所有键名都是正整数或零,并且有length属性,那么这个对象就很像数组,语法上称为"类 ...
- ES6之Array数组
定义数组 ,]; const arr = new Array(1,2,3,4); const array1 = new Array(); array1[]="test"; 给数组不 ...
- ES6数组扩展
前面的话 数组是一种基础的JS对象,随着时间推进,JS中的其他部分一直在演进,而直到ES5标准才为数组对象引入一些新方法来简化使用.ES6标准继续改进数组,添加了很多新功能.本文将详细介绍ES6数组扩 ...
- ES6数组及数组方法
ES6数组可以支持下面的几种写法: (1)var [a,b,c] = [1,2,3]; (2)var [a,[[b],c]] = [1,[[2],3]]; (3)let [x,,y] = [1,2,3 ...
- 数组的复制及ES6数组的扩展
一.数组的复制 // alert([1,2,3]==[1,2,3]); let cc = [0,1,2]; let dd = cc; alert(dd==cc);//此时改变dd会影响cc ES5 只 ...
- ES6,Array.fill()函数的用法
ES6为Array增加了fill()函数,使用制定的元素填充数组,其实就是用默认内容初始化数组. 该函数有三个参数. arr.fill(value, start, end) value:填充值. st ...
- es6数组的扩展
数组扩展运算符 ...(三个点) const demoArr=[0,1,2,3,4] console.log(...demoArr) // 0 1 2 3 4 // 他把一个数组用逗号分隔了出来 // ...
- es6数组
将两类对象转为真正的数组 Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括ES6新增的数据结构Set和 ...
随机推荐
- STM32-AFIO
只有使用了AFIO的事件控制寄存器.AFIO的重映射功能以及外部中断(EXTI)控制寄存器才需要开启AFIO的时钟,STM32参考手册从来没说过使用IO的复用功能就一定要开启AFIO时钟,这是个误区.
- C#获取本机mac地址
添加System.Management的引用, using System.Management; string mac = ""; ManagementClass mc = new ...
- js 获取div 图片高度
使用jquery获取网页中图片的高度其实很简单,有两种常用的方法都可以打到我们的目的 $("img").whith();(返回纯数字) $("img").css ...
- 【第40套模拟题】【noip2011_mayan】解题报告【map】【数论】【dfs】
目录:1.潜伏者 [map] 2.Hankson的趣味题[数论]3.mayan游戏[dfs] 题目: 1. 潜伏者(spy.pas/c/cpp)[问题描述]R 国和S 国正陷入战火之中,双方都互派间谍 ...
- Linux-如何查看登陆shell的类型
输入一个系统不认识的命令(如#ig)获得系统提示 aix/#ig ksh ig not found #echo $ (适用sh/ksh) aix/#echo $ ksh #echo $SHELL(用户 ...
- linux命令每日一练习-pwd,cd
pwd显示当前路径. pwd -P没能明白什么意思, cd 进入目录 cd ..返回上级目录
- switch… case 语句的用法(二)
总结来说:switch的用法是判断case后面的表达式和switch后面的表达式是否相匹配,一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break.都不匹配找d ...
- XCode 自动化打包总结
最近一个礼拜折腾xcode 中ipa 自动化打包,对我来说也说是磕磕碰碰.毕竟对mac下的命令行模式完全不熟悉.而且我们的项目是基于cordova的一个项目. 之前我自己对cordova 项目的命令行 ...
- 《day12---异常》
//91-面向对象-异常-异常的发生和简单应用. /* 异常: java运行时期发生的问题就是异常. Java中运行时的除了异常Exception含有错误Error. 异常:通常发生后可以有针对性的处 ...
- 一篇很好介绍stringBuffer和StringBuilder的区别--来自百度
ava.lang.StringBuffer线程安全的可变字符序列.一个类似于 String 的字符串缓冲区,但不能修改.虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的 ...