博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ES6:数组扩展
阅读量:6867 次
发布时间:2019-06-26

本文共 2589 字,大约阅读时间需要 8 分钟。

Array.from()

Array.from()把类数组转化为数组
var arr = Array.from('string')//["s","t","r","i","n","g"]复制代码
Array.from()接受第二个参数,支持回调函数对类数组当中的内容进行操作然后取到想要的值(和map()类似)
var obj = {    '0' : 'k',    '1' : 'i',    '2' : 'w',    '3' : 'i',    length : 4}var arr1 = Array.from(obj, function(item, index){    return item + index})//arr1 ->["k0", "i1", "w2", "i3"]//上下两种方法结果一样,运行相识var arr2 = Array.from(obj).map((item,index) => item + index)//arr2 ->["k0", "i1", "w2", "i3"]复制代码
将类数组对象转换为真正数组,
//创建3个div元素,文本内容分别是aa、bb、ccvar divs = document.getElementsByTagName('div');//divs 是类数组var divText = Array.from(divs,item => item.innerText)//["aa", "bb", "cc"]复制代码
不是简单的将数组直接返回,而是返回一个一模一样的 【新数组】
var arrA = [12,11,13];var arrB = Array.from(arrA);console.log(arrA, arrB, arrA == arrB);//[12,11,13] [12,11,13] false复制代码

Array.of()

Array.of()创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型
var arr = Array.of(1,2,3,4,5)//[1,2,3,4,5]console.log(arr);复制代码
Array.of()new Array()构造函数比较
Array.of(1, 2, 3); // [1, 2, 3]new Array(1, 2, 3);    // [1, 2, 3]Array.of(3);       // [3] new Array(3);          // [ , , ]复制代码
模拟Array.of()方法
function arrayof(){    return Array.prototype.slice.call(arguments)}console.log(arrayof(1,2,3));复制代码

数组实例的方法 copyWithin()

copyWithin()用于从数组的指定位置拷贝元素到数组的另一个指定位置中。
Array.prototype.copyWithin(target, start, end)
var arr = [0,1,2,3,4,5,6,7]console.log(arr.copyWithin(0, 3))//[3, 4, 5, 6, 7, 5, 6, 7]var arr1 = [0,1,2,3,4,5,6,7]// console.log(arr1.copyWithin(2, 3, 5))//[0, 1, 3, 4, 4, 5, 6, 7]var arr2 = [0,1,2,3,4,5,6,7]console.log(arr2.copyWithin(0, -3, -2))//[5, 1, 2, 3, 4, 5, 6, 7]复制代码
对比fill()用一个固定值替换数组的元素。
array.fill(value, start, end)
var arr = new Array(5)arr.fill(7)       //[7,7,7,7,7]arr2.fill(8,3,4)  //[7,7,7,8,7]复制代码

数组实例的方法 entries() keys() values()

entries() keys() values()对数组/下标进行遍历,返回迭代器对象(values()chrom 不支持)
var arr = [8,10,0,12];var a = arr.keys();var b = arr.values();console.log(a.next().b)for([item, index]of arr.entries()){    console.log(item, index);}//0 8//1 10//2 0//3 12复制代码

数组实例的方法 find() findIndex() includes()

indexof()相比可以根据条件进行查找
find()
找到对应条件的值是返回对应的键值,没有找到就返回undefined
var arr = [8,10,0,12];var num1 = arr.find(item => item > 8)//10var num2 = arr.find(item => item > 9)//undefined复制代码
findIndex()
找到对应条件的值是返回对应的键名,没有找到就返回-1
var arr = [8,10,0,12];var num1 = arr.findIndex(item => item > 10)//3var num2 = arr.findIndex(item => item > 13)//-1 复制代码
includes()
找到对应的值返回true,找不到返回false
var arr = [8,10,0,12];var num1 = arr.includes(2)//falsevar num2 = arr.includes(12)//true复制代码
可以找到NaN
var arr = [NaN];var num1 = arr1.includes(NaN);//truevar num2 = arr1.indexOf(NaN);//-1复制代码

转载地址:http://redfl.baihongyu.com/

你可能感兴趣的文章
叫做……概括一个数组?
查看>>
(转)JS 数字格式千分位相互转换
查看>>
进度条
查看>>
5.9 j(java学习笔记)强软弱虚引用及WeakHashMap、IdentityHashMap、EnumMap
查看>>
机器学习杂记
查看>>
移动Web开发经验
查看>>
苹果Itools
查看>>
Windows 2003/2008更改远程桌面端口脚本
查看>>
Mozilla开发新功能提升网络隐私保护
查看>>
运营是一门艺术,互联网营销
查看>>
Visual Studio 2010 SP1将支持HTML5和CSS3
查看>>
[资源记录 ]mobile layer cdn
查看>>
关于scrapy的piplines
查看>>
20165232《信息安全系统设计基础》第六周学习总结
查看>>
凸优化之凸集
查看>>
2、Spring开发的jar文件
查看>>
linux -- #!/bin/bash
查看>>
引用程序集没有强名称解决办法
查看>>
poj 2965 The Pilots Brothers' refrigerator
查看>>
子集生成——回溯法的准备篇
查看>>