前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript数组

JavaScript数组

作者头像
六个周
发布2022-10-28 11:49:59
6960
发布2022-10-28 11:49:59
举报
文章被收录于专栏:六个周

构造函数Array

  • Array是JavaScript的原生对象,同时也是一个构造函数,可以用它生产新的数组,但由于Array作为构造函数的行为不一致,因此不建议使用。
  • new Array等同于 Array,加不加new一点影响都没有。
  • Array.of()返回由所有参数值组成的数组
  • Array.from()将具有iterator接口的对象转为数组
代码语言:javascript
复制
let a = new Array(3);
let a_b = Array(3)
let b = [undefined, undefined, undefined];

a[0] === undefined
b[0] === undefined
0 in a // false
0 in b // true

let c = Array.of(6,6,6)  // [6,6,6]

静态方法

  • Array.isArray()

该方法返回一个布尔值,表示参数是否为数组,以来弥补typeof的不足。

实例方法

valueOf() toString()

  • 首先这个valueOf()是所有对象都拥有的方法,表示对该对象求值。然后,这个数组的valueOf方法返回数组本身。

let arr = [1,2,3];

arr.valueOf() //[1,2,3]

  • 这个toString()方法也是对象的通用方法,数组的toString()方法返回数组的字符串形式。

arr.toString() // 1,2,3

push() pop()

  • push()方法在数组末尾添加一个或多个元素,返回添加元素后数组的长度,会改变原数组。
  • pop()方法 删除数组的最后一个元素,返回删除的元素,会改变原数组。

shift() unshift()

  • shift()方法 删除数组的第一个元素,返回删除的元素,会改变原数组。
  • unshift()方法 在数组的开头添加一个或多个元素,返回添加元素后的数组长度,会改变原数组。

join()

  • join()方法以指定的参数作为分隔符,将所有数组成员连接为一个字符串返回,不提供参数,默认以逗号连接。
  • 字符串:Array.prototype.join.call(‘hello’,‘-’) => h-e-l-l-o

concat()

concat()方法用于多数组的合并,将新数组的成员,添加到原数组成员的后部,返回一个新数组,原数组成员不变。 除了数组作为参数,也可以接受其它类型的值作为参数。如果参数为对象,那么为浅拷贝:原对象发生改变,新生成的数组对象的值跟着发生改变。

reverse()

reverse 用于颠倒排列数组元素,返回改变后的数组,该方法将改变原数组。

slice()

  • slice方法可从已有的数组中返回选定的元素–返回一个新的数组,且原数组不会发生改变
  • 语法:arrayObject.slice(start,end)
  • start: 必填字段,规定从何处开始(索引0)选择。如果为负数,则是从数据尾部开始算起的位置。
  • end:可选字段,不包含该元素,如果包含该参数,则结果不包含该索引处的值。
  • 重要应用是将一个类数组的对象转化为真正的数组:Array.prototype.slice.call({ 0: ‘a’, 1: ‘b’, length: 2 })

  • “web/entry-runtime.js”.slice(3) -> “entry-runtime.js”

splice()

  • splice方法用于删除原数组的一部分成员,并可以在删除的位置添加新的数组成员,返回值是被删除的元素,该方法会改变原数组。
  • 参数说明:第一个参数为删除的开始位置,第二个参数为删除的参数个数,如果后面还有参数,表示要被插入数组的新元素。起始位置如果是负数,表示从倒数位置开始删除。

sort()

  • sort方法对数组成员进行排序,默认按照字典顺序排序。排序后,原数组发生改变。
  • 按照自定义方式排序,可传入函数作为参数

map()

  • map()方法将数组的所有成员依次传入参数函数,然后把每一次的执行结果组成一个新数组返回,注意数组数组中的值是原始数据类型,确实不会改变原数组,但是如果值为引用数据类型,那么会对原数组进行更改。
  • map接受一个函数作为参数,参数依次为:当前成员、当前位置、数组本身
  • map还可以接受第二个参数,用来绑定回调函数内部的this变量。

forEach()

  • forEach()与map()方法很相似,也是对数组的所有成员依次执行参数函数。包含参数、第二个参数等与map完全一致,只是forEach不返回值,只是用来操作数据。

filter()

  • filter用于过滤数组成员,满足条件的成员组成一个新数组返回。
  • **接受一个函数作为参数,**参数依次为:当前成员、当前位置、数组本身
  • 数组的所有成员执行该函数,返回结果为true的成员组成一个新数组返回。该方法不会改变原数组。

find()

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

includes()

判断一个数组中是否包含某个选项 [1, 2, 3].includes(2)

flat() flatMap()

数组的成员有时还是数组,Array.prototype.flat()用于将嵌套的数组“拉平”,变成一维的数组。该方法返回一个新数组,对原数据没有影响。 以将flat(n)方法的参数写成一个整数,表示想要拉平的层数,默认为1。如果不管有多少层嵌套,都要转成一维数组,可以用Infinity关键字作为参数。

flatMap()方法对原数组的每个成员执行一个函数(相当于执行Array.prototype.map()),然后对返回值组成的数组执行flat()方法。该方法返回一个新数组,不改变原数组。

some() every()

  • 与map、forEach、filter一样接受一个函数作为参数,且函数内参数一致。
  • some为只要一个成员的返回值是true,则整个some方法就返回true。
  • every为所有成员的返回值是true,则整个every方法就返回true。

reduce() reduceRight

  • reduce和reduceRight方法依次处理数组的每个成员,最终累计为一个值。
代码语言:javascript
复制
[1,2,3,4,5].reduce(function(a,b){
	return a + b
})
// reduce方法求出数组所有成员的和。

reduce方法和reduceRight方法的第一个参数都是一个函数,该函数接受以下四个参数

  • 累积变量 – 默认为数组的第一个成员 必选
  • 当前变量 – 默认为数组的第二个成员 必选
  • 当前位置 – 从0开始 可选
  • 原数组 可选

indexOf lastIndexOf()

  • indexOf方法返回给定元素在数组中第一次出现的位置,如果没有则为-1.
  • indexOf还可以接收第二个参数,表示搜索的开始位置。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-03-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 构造函数Array
  • 静态方法
  • 实例方法
    • valueOf() toString()
      • push() pop()
        • shift() unshift()
          • join()
            • concat()
              • reverse()
                • slice()
                  • splice()
                    • sort()
                      • map()
                        • forEach()
                          • filter()
                            • find()
                              • includes()
                                • flat() flatMap()
                                  • some() every()
                                    • reduce() reduceRight
                                      • indexOf lastIndexOf()
                                      领券
                                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档