javascript - 数组常用方法总结(一)

数组常用方法感兴趣的可以查看MDN文档里面很细Array - JavaScript | MDNhttps://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array

简单对这些方法进行分类 :

  • 创建数组 : Array.from , Array.of
  • 迭代器 : keys , values, entries
  • 复制和填充 : copyWithin, fill
  • 转换方法 : toLocaleString, toString
  • 数组的增加和删减 : push, pop, shift, unshift, concat,
  • 排序方法 : reverse, sort
  • 获取数组索引 : indexOf, lastIndexof, findIndex
  • 遍历方法 : forEach, filter, map, some, every, find, reduce
  • 判断是否是数组 : Array.isArray, instanceof()
  • 扁平化数组 :flat, reduce

接下来一一说明 : 

一. 创建数组 

1. Array.from 

用于将伪数组结构转换为真数组,也就是数组的实例 . 

参数 : 1. 伪数组结构(可以是任意可迭代的结构包括迭代器, 字符串等等)  2. 映射函数

    const arr = {
      0: 1,
      1: 2,
      2: 3,
      3: 4,
      length: 4
    }
    const res = Array.from(arr, item => item ** 2) //  [1, 4, 9, 16]
    const strArr = Array.from('abcde') //  ['a', 'b', 'c', 'd', 'e']

2. Array.of

用于将一组参数转换为数组, 换句话说就是把你传的东西装在数组中输出出来

    const res = Array.of(1, 2, 3123, 'a', 'c', [], {})
    console.log(res);  // [1, 2, 3123, 'a', 'c', Array(0), {…}]

二. 迭代器

数组的原型上暴露了三个方法可以访问数组的迭代器 , keys方法返回数组索引的迭代器, values方法返回数组元素的迭代器, entries方法返回数组索引对应值的迭代器, 可以通过Array.from转成数组看看长啥样

    const arr = [1, 2, 3, 4, 5]
    const keysArr = Array.from(arr.keys())
    const entriessArr = Array.from(arr.entries())
    const valuesArr = Array.from(arr.values())

 最终的输出结果就是下图

 三. 复制和填充

1. copyWithin 复制

MDN给出的概念 : 此方法浅复制数组的一部分到同一数组中的另一个位置,并返回它,不会改变原数组的长度。

参数 : 1. 复制基底索引(复制到哪)  2. 开始索引(从哪开始复制)  3. 结束索引(到哪结束)

    const arr = ['a', 'b', 'c', 'd', 'e']
    const arr2 = ['a', 'b', 'c', 'd', 'e']
    // 用大白话来解释下面的操作 : 将数组中的第一项到第三项不包括第三项 => b c 插入到索引为 0的位置 把原先的 a b 就改成了 b c 
    console.log(arr.copyWithin(0, 1, 3)); // ['b', 'c', 'c', 'd', 'e']
    console.log(arr); // ['b', 'c', 'c', 'd', 'e']
    // copyWithin 方法会修改原数组
    // 如果不希望修改原数组
    console.log([...arr2].copyWithin(0, 1, 3)); // ['b', 'c', 'c', 'd', 'e']
    console.log(arr2); // ['a', 'b', 'c', 'd', 'e']

1. fill 填充

fill方法将一个值填充到数组的某个位置

参数: 1. 填充值  2. 填充的开始位置(索引) 3.填充的结束位置(索引)

解释一下 : 创建了一个空数组但是它的长度为0, 于是修改了它的的长度, 将10填充到数组中的索引为0到索引为9. 

    const arr = []
    arr.length = 10
    console.log(arr.fill(10, 0, 10)); // [10, 10, 10, 10, 10, 10, 10, 10, 10, 10]

再举一个例子, 创建一个0-100的数组

    const arr = []
    arr.length = 100
    for (let i = 0; i < arr.length; i++) {
      arr.fill(i + 1, i, i + 1)
    }
    console.log(arr); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]

剩下的明天再说.........

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值