美文网首页JS
ES6新增新操作数组的方法

ES6新增新操作数组的方法

作者: rebirth重生A | 来源:发表于2019-02-28 19:31 被阅读0次

    接上篇数组操作方法,补充es新增操作数组的方法

    1.find(),传入一个回调函数,找到数组中符合当前搜索规则的第一个元素,返回它,并且终止搜索

    const arr = [1, "2", 3, 3, "2"]

    console.log(arr.find(n => typeof n === "number")) // 1


    2.findIndex(),传入一个回调函数,找到数组中符合当前搜索规则的第一个元素,返回它的下标,终止搜索

    const arr = [1, "2", 3, 3, "2"]

    console.log(arr.findIndex(n => typeofn === "number")) // 0


    3.fill(),用新元素替换掉数组内的元素,可以指定替换下标范围。

    arr.fill(value, start, end)


    4.from(),将类似数组的对象(array-like object)和可遍历(iterable)的对象转为真正的数组

    const bar = ["a", "b", "c"];

    Array.from(bar);

    // ["a", "b", "c"]

    Array.from('foo');

    // ["f", "o", "o"]


    5.of(),用于将一组值,转换为数组。这个方法的主要目的,是弥补数组构造函数 Array() 的不足。因为参数个数的不同,会导致 Array() 的行为有差异。

    Array() // []

    Array(3) // [, , ,]

    Array(3, 11, 8) // [3, 11, 8]

    Array.of(7);    // [7]

    Array.of(1, 2, 3); // [1, 2, 3]

    Array(7);     // [ , , , , , , ]

    Array(1, 2, 3);  // [1, 2, 3]


    6、entries() 返回迭代器:返回键值对

    //数组

    const arr = ['a', 'b', 'c'];

    for(let v of arr.entries()) {

     console.log(v)

    }         // [0, 'a'] [1, 'b'] [2, 'c']

    //Set

    const arr = newSet(['a', 'b', 'c']);

    for(let v of arr.entries()) {

     console.log(v)

    }        // ['a', 'a'] ['b', 'b'] ['c', 'c']

    //Map

    const arr = newMap();

    arr.set('a', 'a');

    arr.set('b', 'b');

    for(let v of arr.entries()) {

     console.log(v)

    }      // ['a', 'a'] ['b', 'b']


    7.values() 返回迭代器:返回键值对的value

    //数组

    const arr = ['a', 'b', 'c'];

    for(let v of arr.values()) {

     console.log(v)

    }    //'a' 'b' 'c'

    //Set

    const arr = newSet(['a', 'b', 'c']);

    for(let v of arr.values()) {

     console.log(v)

    }    // 'a' 'b' 'c'

    //Map

    const arr = newMap();

    arr.set('a', 'a');

    arr.set('b', 'b');

    for(let v of arr.values()) {

     console.log(v)

    }     // 'a' 'b'


    8.keys() 返回迭代器:返回键值对的key

    //数组

    const arr = ['a', 'b', 'c'];

    for(let v of arr.keys()) {

     console.log(v)

    }    // 0 1 2

    //Set

    const arr = newSet(['a', 'b', 'c']);

    for(let v of arr.keys()) {

     console.log(v)

    }    // 'a' 'b' 'c'

    //Map

    const arr = newMap();

    arr.set('a', 'a');

    arr.set('b', 'b');

    for(let v of arr.keys()) {

     console.log(v)

    }     // 'a' 'b'


    9.includes(),判断数组中是否存在该元素,参数:查找的值、起始位置,可以替换 ES5 时代的 indexOf 判断方式。indexOf 判断元素是否为 NaN,会判断错误。

    var a = [1, 2, 3];

    a.includes(2); // true

    a.includes(4); // false

    相关文章

      网友评论

        本文标题:ES6新增新操作数组的方法

        本文链接:https://www.haomeiwen.com/subject/lwikuqtx.html