• ES6数组新增方法


    ES6数组新增方法

    • Array.from
    作用: 把类数组(获取一组元素、arguments…) 对象转成数组
    个人观点: 具备 length这个东西,就靠谱
    
    1、字符串转数组(个人感觉有些类似于arr.split("")):
    let str = "hello";
    console.log(Array.from(str));	//Array(5) ["h", "e", "l", "l", "o"]
    
    2、将类数组对象转换为真正数组:
    let arrList = {
        0: 'yang', 
        1: '27',
        2: '男',
        3: ['wang','ling','huang'],
        'length': 4
    }
    let arr = Array.from(arrList)
    console.log(arr) // Array(4) ['yang','27','男',['wang','ling','huang']]
    
    PS:对于第二种,如果将最后的length去掉,那将是一个length为0的空数组
    
    如果将代码再改一下:
    let arrList = {
        'name': 'yang', 
        'age': '27',
        'sex': '男',
       	'fre': ['wang','ling','huang'],
        'length': 4
    }
    let arr = Array.from(arrList)
    console.log(arr) // Array(4) [undefined, undefined, undefined, undefined]
    会发现结果是长度为4,元素均为undefined的数组
    
    由此可见,要将一个类数组对象转换为一个真正的数组,必须具备以下条件:
    1、该类数组对象必须具有length属性,用于指定数组的长度。如果没有length属性,那么转换后的数组是一个空数组
    2、该类数组对象的属性名必须为数值型或字符串型的数字
    
    
    • Array.of() 把一组值,转化数组
    let arr = Array.of('apple','banana','orange');
    console.log(arr);	
    输出:['apple','banana','orange']
    
    • arr.find() 查找数组内元素,找到第一个符合条件的数组成员,返回该成员的值,如果没有找到,返回undefined
    例子:
    let arr = [0,1,2,3,4,5];
    let result = arr.find(function(val, index, arr){
    	return val > 1;		// 数组内大于1的为:2,3,4,5
    						// 但是我们返回的是符合条件的第一个:2
    },this)
    console.log(result);	// 2
    
    
    • arr.findIndex() 查找数组内元素,找到第一个符合条件的数组成员,返回该成员的下标(index), 没找到返回-1
    例子:
    let arr = ["yang", "wang", "ling"];
    let result = arr.findIndex(function(val, index, arr){
    	return val == "wang";		// 查找到的字符串"wang"下标为:1
    },this)
    console.log(result);	// 1
    
    • arr.fill 填充
    array.fill(value, start, end)
    参数	描述
    value	必需。填充的值。
    start	可选。开始填充位置。
    end	可选。停止填充位置 (默认为 Array.length)
    
    1、只传入一个值(填充值),那将覆盖所有数组内的内容
    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    fruits.fill("Runoob");
    输出:Runoob,Runoob,Runoob,Runoob
    
    2、传入三个参数(填充值,起始位置,结束位置),那将把填充值替换到起始位置和结束位置之间
    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    fruits.fill("Runoob", 2, 4);
    输出:Banana,Orange,Runoob,Runoob
    
    
    在ES2016里面新增:
    
    arr.indexOf()	// 查找指定元素是否存在,如果存在,返回下标,如果不存在返回-1
    let arr = [“yang”, “wang”,“wang”, “ling”];
    console.log(arr.indexOf(“yang”))	// 0
    
    arr.includes()	// 查找指定元素是否存在,如果存在,返回true,如果不存在返回false
    
    str.includes()	// 查找指定元素是否存在,如果存在,返回true,如果不存在返回false
    
    例子(字符串类似):
    let arr = [“yang”, “wang”,“wang”, “ling”];
    console.log(arr.includes(“yang”))	// true
    
  • 相关阅读:
    ref与out的区别(C#)
    用MS SQL Server 2008修改数据库表时提示“不允许保存更改”的解决方法
    测试的职责
    性能测试新手误区(三):用户数与压力
    JAVA + LR实现apache流媒体的性能测试(LR部分)
    性能测试新手误区(二):为什么我模拟的百万测试数据是无效的
    JAVA + LR实现apache流媒体的性能测试(JAVA部分)
    性能测试新手误区(六):性能监控
    性能测试新手误区(五):这是性能问题么
    性能测试新手误区(四):一切来自录制
  • 原文地址:https://www.cnblogs.com/pansidong/p/13177237.html
Copyright © 2020-2023  润新知