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

    1.Array.from(): 将伪数组对象和遍历的对象转为真数组

      如果一个对象的键都是正整数或者0,并且有 Length属性,那么这个对象很想数组,称它为伪数组。

      伪数组:    

      let obj = {
            0: 0,
            1: '1',
            2: '2',
            'length': 3
        }
        obj.length = 3;
        let arr = Array.from(obj) // 将伪数组转换为数组
        console.log(arr) // [0,1,2]

      (1)对象中没有length属性的话, Array.from() 返回一个 [] 

      (2)如果对象中的剪不是正整数的或0 的时候,不是正整数对象的 元素为 undefined.

    2.Array.of(): 将一系列值转换为数组。

      let arr2 = Array.of('1', 'shuz', '狗蛋');
        console.log(arr2);  // ["1", "shuz", "狗蛋"]

    3.find() 和 findIndex()

      (1)数组实例的find()  方法用于找出第一个符合条件的数组成员。他的参数是一个回调函数,所有的函数依次执行该回调函数,直到找到第一返回值为 true的成员,然后返回该成员,如果没有符合条件的成员返回undefined。

      示例:

      // Array.find()
        let findVal = [10, 20, 39, 3, 12, 5].find( (n, index, arr) => {
            return n < 10;
        })
        console.log(findVal);  // 3

      数组实例的 findIndex()和find() 很相似。findIndex() 方法返回的第一个符合条件的数组成员的位置,如果所有成员都符合条件,则返回 -1;

    [1, 5, 10, 15].findIndex(function(value, index, arr) {
      return value > 9;
    }) // 2

    4.数组实例的includes()

    方法返回一个布尔值,表示某个数组是否包含给定的值。该方法的第二个参数表示搜索的起始位置,默认为0。如果第二个参数为负数,则表示倒数的位置,如果这时它大于数组长度(比如第二个参数为-4,但数组长度为3),则会重置为从0开始。

    [1, 2, 3].includes(2)   // true
    [1, 2, 3].includes(3, -1); // true
    [1, 2, 3, 5, 1].includes(1, 2); // true

    5.数组实例的 entries(),keys() 和 values()

    ES6 提供entries(),keys()和values(),用于遍历数组。它们都返回一个遍历器对象,可以用for...of循环进行遍历,唯一的区别是keys()是对键名的遍历、values()是对键值的遍历,entries()是对键值对的遍历。

        // Array.keys()
        let arr5 = [1,2,'123','12312qweqwe']
        console.log('keys', arr5.keys())  // Array Iterator {}
        for(let index of arr5.keys()) {
            console.log(index) // 0,1,2,3 
        }
        // Array.values()
        for(let value of arr5.values()) {
            console.log(value) // 1,2,'123','12312qweqwe'
        }
        // Array.entries()
        for(let [index, value] of arr5.entries()) {
            console.log(index, value);
            // 0 1
            // 1 2
            // 2 "123"
            // 3 "12312qweqwe"
        }
  • 相关阅读:
    前端网络安全——其他安全问题
    前端网络安全——密码安全
    前端网络安全——接入层注入
    前端网络安全——点击劫持
    mac重装系统后安装列表
    manjaro踩坑记录
    JavaScript学习过程中遇到的一些坑
    JavaScript学习
    [解决方法] 如何在没有屏幕的情况下训练一些需要显示的程序
    Python中*号的作用详解
  • 原文地址:https://www.cnblogs.com/yuanyongbin/p/11809437.html
Copyright © 2011-2022 走看看