zoukankan      html  css  js  c++  java
  • JavaScript高级-----13.ES6之Array扩展方法

    1 Array的扩展方法


    上述输出结果中没有逗号的原因:逗号被当作是console.log()方法的参数分隔符了
    扩展运算符和剩余参数正好相反
    剩余参数:将剩余的元素放在一个数组中。
    扩展运算符:可以将数组或者对象转为用逗号分割的参数序列

    // 扩展运算符可以将数组拆分成以逗号分隔的参数序列
    let ary = ["a", "b", "c"];
    // ...ary // "a", "b", "c"
    console.log(...ary); //a b c
    // 相当于
    console.log("a", "b", "c"); //a b c
    


    方法1:

    // 扩展运算符应用于数组合并
    let ary1 = [1, 2, 3];
    let ary2 = [4, 5, 6];
    // ...ary1 // 1, 2, 3
    // ...ary1 // 4, 5, 6
    let ary3 = [...ary1, ...ary2];
    console.log(ary3); //(6) [1, 2, 3, 4, 5, 6]
    

    方法2:

    // 合并数组的第二种方法
    let ary1 = [1, 2, 3];
    let ary2 = [4, 5, 6];
    let ary3 = [7, 8, 9];
    
    ary1.push(...ary2, ...ary3);
    console.log(ary1); //(9) [1, 2, 3, 4, 5, 6, 7, 8, 9]
    

    // 利用扩展运算符将伪数组转换为真正的数组
    var oDivs = document.getElementsByTagName('div');
    console.log(oDivs); //HTMLCollection(6) [div, div, div, div, div, div]    这是一个伪数组
    // ...oDivs//将伪数组转换为逗号分割的参数序列
    var ary = [...oDivs]; //变成真正的数组
    //将伪数组转换为真正的数组之后,就可以调用数组对象中的真正的方法
    ary.push('a');
    console.log(ary); //(7) [div, div, div, div, div, div, "a"]
    


    Array.from()以伪数组作为第一个参数,返回值是一个真正的数组

    var arrayLike = { //这是一个伪数组
        "0": "张三",
        "1": "李四",
        "2": "王五",
        "length": 3
    }
    
    var ary = Array.from(arrayLike); //ary是一个真正的数组
    console.log(ary)
    

    • Array.from()以函数作为第二个参数,对数组中的元素进行加工处理,数组中有多少个元素函数就会被调用多少次
    • 函数有一个形参,代表要处理的那个值,只需要将处理的结果返回即可
    var arrayLike = {
        "0": "1",
        "1": "2",
        "length": 2
    }
    
    var ary = Array.from(arrayLike, item => item * 2)
    console.log(ary); //(2) [2, 4]
    

    • find()接收一个函数作为参数,这个参数中的函数返回的是bool值,实际上就是查找的条件
    var ary = [{
    	id: 1,
    	name: '张三'
    }, {
    	id: 2,
    	name: '李四'
    }];
    let target = ary.find((item, index) => {//item是数组中的元素;index是数组的索引号
    	console.log(index);
    	return item.id == 1;
    });
    console.log(target);
    //0 说明查找符合条件的值就立马返回,不会继续循环
    //{id: 1, name: "张三"}
    

    let ary = [10, 20, 50];
    let index = ary.findIndex((item, index) => {
    	console.log(index);
    	return item > 15;
    	// console.log(index);  写在return后面则一次都不打印
    });
    console.log('符合条件的索引是' + index);
    //打印结果
    //0
    //1
    //符合条件的索引是1
    

    let ary = ["a", "b", "c"];
    let result = ary.includes('a') //true
    console.log(result)
    result = ary.includes('e') //false
    console.log(result)
    
  • 相关阅读:
    解决 Android SDK Manager不能下载旧版本的sdk的问题
    [置顶] 如何合并文件中的内容?
    JSTL解析——005——core标签库04
    C中的几组指针
    别动我的奶酪:CSV文件数据丢零现象及对策
    重载(overload),覆盖/重写(override),隐藏(hide)
    IOS 轻量级数据持久化 DataLite
    记录路径dp-4713-Permutation
    android 多媒体数据库详解
    Data Recovery Advisor(数据恢复顾问)
  • 原文地址:https://www.cnblogs.com/deer-cen/p/12434176.html
Copyright © 2011-2022 走看看