美文网首页前端之路
JavaScript 数组实例方法

JavaScript 数组实例方法

作者: 小小_绿 | 来源:发表于2019-08-13 11:45 被阅读10次
    copyWithin()

    在当前数组内部,将指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组。

    • target(必需):从该位置开始替换数据。如果为负值,表示倒数。
    • start(可选):从该位置开始读取数据,默认为 0。如果为负值,表示从末尾开始计算。
    • end(可选):到该位置前停止读取数据,默认等于数组长度。如果为负值,表示从末尾开始计算。
    find() 和 findIndex()
    • find() 用于找出第一个符合条件的数组成员
      若找到为true,否则返回 undefined
    [11, 5].find(function(value, index, arr) {
      return value > 9;
    })
    

    value: 当前值,;index:当前位置,;arr:原数组

    • findIndex() 用于找出第一个符合条件的数组成员的位置,若不存在返回-1
    [11, 5].findIndex(function(value, index, arr) {
      return index> 0;
    })
    

    indexOf方法无法识别数组的NaN成员;findIndex方法可以借助Object.is方法做到。

    [NaN].indexOf(NaN)
    // -1
    
    [NaN].findIndex(y => Object.is(NaN, y))
    // 0
    
    fill()

    使用给定值,填充一个数组
    fill方法用于空数组的初始化,数组中已有的元素,会被全部抹去。
    第一参数、第二个和第三个参数,用于指定填充的数值、起始位置和结束位置。

    entries(),keys() 和 values()
    • keys()是对键名的遍历;
    • values()是对键值的遍历;
    • entries()是对键值对的遍历。
    includes()

    返回一个布尔值,表示某个数组是否包含给定的值,与字符串的includes方法类似,有些浏览器不兼容。
    第二个参数表示搜索的起始位置,默认为0。如果第二个参数为负数,则表示倒数的位置,如果这时它大于数组长度(比如第二个参数为-3,但数组长度为2),则会重置为从0开始。

    检查当前环境是否支持该方法,如果不支持,部署一个简易的替代版本。

    const contains = (() =>
      Array.prototype.includes
        ? (arr, value) => arr.includes(value)
        : (arr, value) => arr.some(el => el === value)
    )();
    contains(['foo', 'bar'], 'baz'); // => false
    
    flat(),flatMap()
    • flat():用于拉平数组,默认只能拉平一层,若需多层则flat(2),参数为整数;
      参数为 Infinity,可实现不确定层数的数组拉平
    [16, 62, [36, [64, 5]]].flat()
    // [16, 62, 36, [46, 5]]
    
    [14, 2, [43, [4, 45]]].flat(2)
    // [41, 2, 43, 4, 45]
    
    • flatMap()
      方法对原数组的每个成员执行一个函数(相当于执行Array.prototype.map()),然后对返回值组成的数组执行flat()方法。该方法返回一个新数组,不改变原数组。仅能展开一层

    相关文章

      网友评论

        本文标题:JavaScript 数组实例方法

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