zoukankan      html  css  js  c++  java
  • 数组的扩展

    一、数组扩展
    1.Array.from()
    作用:用于将类数组对象转为标准数组(类数组对象Array-like-object,可遍历的对象 iterable)
    语法:
    var doms = document.getElementsByTagName('div');
    console.log(doms, [].slice.call(doms), Array.from(doms));
    function ff(){
    var arr=Array.from(arguments);
    }

    from方法可以接受第二个参数,作用类似于map,用来对数组的每一个元素进行处理,将结果放入一个新的数组中(映射)
    from可以将各种值转为数组,拥有map的功能,只要有一个原始的数组解构,就可以先对其进行处理,然后转为一个标准的数组,最后可以使用新数组调用数组的各种方法
    from将字符串转为数组,返回字符串长度
    使用es5如何将字符串转为数组? split 使用split转的话。会将大于uffff的unicode编码认为是两个字符
    使用from。由于其可以识别各种unicode编码,可以避免将大于uffff的编码算作两个字符的bug
    2.Array.of()
    用于将一组值转为数组,定义数组,主要用于弥补Array()构造函数的不足之处(Array()构造函数会因为参数的不同,做不同的处理,参数个数大于2,才能真正的生成一个数组)
    如果使用of替代Array(),Array.of()总会返回一个新的数组,如果没有参数就是一个空数组
    3.copyWithin()该方法是数组实例化的方法,作用:将当前数组内部指定范围内容的成员复制到其他位置(会覆盖其他位置的元素)
    语法:[1,2,3,4].copyWithin(target,start,end)
    target:必须,从这个位置开始替换
    start:可选,从这个位置开始读取,默认是0,负值表示倒着数,最后一个元素表示-1
    end:可选,表示读取大这个位置结束,默认值是数组的长度,负值表示倒序。不包含这个位置的元素
    eg:[1,2,3,4,5,6,7,8,9].copyWithin(6,0,3);
    ==>[1,2,3,4,5,6,1,2,3]


    4.find()和findIndex()
    数组实例化方法,用于找出第一个复合条件的元素,参数是回调函数
    原理:将所有元素一次执行回调函数,找到第一个返回true的元素,并将该元素返回,结束遍历,如果没有找到返回出的元素,结果返回undefined
    find方法的回调函数 可以接受三个参数。分别是:值,下标,原数组;
    findIndex()数组实例化对象的方法,用法与find一样,返回第一个复合条件的元素的下标,如果没有找到符合条件的元素,返回-1
    5.fill() 填充
    使用给定的值,填充一个数组,fill方法用于空数组初始化非常方便,数组中已经有的元素将会被全部抹掉
    fill()有三个参数“
    [1,2,3,4,5,6].fill('a',3,5);
    a:表示填充的内容
    3,5:表示填充的开始和结束位置,包括3不包括5
    6.includes()
    返回一个布尔值,用于判断数组中是否包含某一个元素,包含返回真,不包含返回假,与字符串的includes方法类似
    可以接受第二个参数,表示从哪个位置开始搜索,默认是0,负数表示到这来,如果超过数组长度,则认为是从0开始
    7.数组的空位
    数组的空位指的是在数组的某个位置上没有任何值,比如:new Array(3) //[,,];
    注意:空位不是undefined,如果一个位置上是undefined,说明这个位置上是有值的
    es5:
    大部分情况会跳过空位
    forEach().filter(),every(),some()等遍历方法会直接跳过空位
    map() 会跳过空位,但是会保留这个值
    join() 头toString() 会将空位视为undefined处理,而真正的undefined和null将会被处理为空字符串‘’
    es6:所有的空都是undefined
    注意:由于数组中出现空值会影响数组的使用,处理方法不一致,所有工作过程中尽可能避免出现空值

  • 相关阅读:
    2017-5-21 Asp.Net内置对象 和 DropDownList时间年月日的三级联动
    【2017-04--28】Winform中ListView控件
    【2017-04-27】布局及容器控件、打开多窗体、构造函数传值、打开唯一窗口
    【2017-04-25】winform公共控件、菜单和工具栏
    【2017-04-24】WinForm基础、登录窗口、窗口属性
    【2017-04-20】Sql字符串注入式攻击与防御,实体类,数据访问类
    【2017-04-18】Ado.Net C#连接数据库进行增、删、改、查
    【2017-04-17】类库、通用变量、is和as、委托
    【2017-04-16】抽象类、接口、构造函数、重载、静态成员和方法
    【面向对象】类、访问修饰符、封装、继承、多态
  • 原文地址:https://www.cnblogs.com/txf-123/p/11550445.html
Copyright © 2011-2022 走看看