js 数组
数组array
学习一个方法的原则:
- 看字面意思 方法是干什么的.
- 看参数
- 看返回值
- concat()
合并数组
0个或多个参数
返回值 返回新的数组. (数组中的方法有浅拷贝也有深拷贝)
深拷贝方法
例子:
浅拷贝:返回的新的数组,发生改变会影响原来数组的数组,这叫浅拷贝.
深拷贝:返回的新的数字发生改变,原来的数组不会跟着改变,这叫深拷贝.
- constructor()
构造器
指向对象的父类
- Copywithin()
- Entries() keys() values() 遍历器 先不说
- Every()
检测数组中的元素是否都满足某个条件,都满足返回true, 有一个不满足返回就是false;
参数,第一个是回调函数,第二个是数值对象(改变函数中的this指向)
返回值是true和false
- Fill()
- 使用一个固定值来填充数组,用一个固定的值来替换数组中的元素
参数 三个参数 第一个参数就是那个固定值(必填项),第二个是开始替换的起始位置,第三个是替换的结束位置
返回值 返回替换后的新的数组
不可以拷贝
![]()
- Filter()
对数组中元素进行过滤,将符合条件的元素保留,并返回构成一个新的数组
参数 第一个参数是回调函数,第二个是数值对象(用来修改函数中的this指向)
返回值是过滤后的数组
深拷贝
- Find()
查找符合某个条件的数组元素
用法跟filter一样
- Findindex()
返回第一个符合条件的数组元素的索引值。
用法和find一样,就是返回值不一样
- Flat()
将多维数组拉平变成一维数组
参数 默认是1最多只能拉平二维数组,值2最多拉平三维数组,不管嵌套多少层,都拉平,使用关键字infinity
返回值 返回拉平后的数组
![]()
- Flatmap()
先对原数组执行map然后再对数组执行flat。
-
参数 回调函数
返回值 返回一个新的二维数组
- Foreach()
数组中的每个元素都执行一次回调函数,没有返回值,改变原数组.
参数第一个是回调函数 第二个是数值对象(可省略)
没有返回值
浅拷贝
跟for原理一样
第二个参数可以用来修改函数中的this
- Includes()这是es7新增的方法
- 判断一个数组中是否包含一个指定的值
参数 第一个参数是必填的 第二个参数查找的起始位置(默认为0)如果是负数,用数组的length+这个负数得到的数字就是起始查找位置
返回值 true和false
- Indexof()
查找数字在数组中出现的位置
参数 第一个参数必填 就是查找的元素 第二个就是查找的起始位置
返回值 找到就返回索引 没找到返回-1
- Join()
将数组中的所有元素放入一个字符串
参数 一个分隔符 默认是逗号
- Lastindexof()
- 和indexOf()一样,但他是从右向左,都是首次出现的。
- Map
通过函数处理数组的每个元素,并返回处理后的结果,构造一个新的数组,不影响元素组
俩个参数第一个是函数,第二个是元素值(可省略)
函数的参数 有三个 第一个是当前元素 第二个是当前元素的索引 第三个是省略
返回的是处理后的新的数组
深拷贝
Map第二个参数的作用
- 省略或者填null,undefined,函数类的this是window
- 如果填了,函数了的this就指向这个参数
Var a 将变量存到内存中,有变量提升有作用域。也相当于给window加了个a属性
A 只相当于给window加了个a属性
- Pop
在数组的结尾处删除数组中的最后一个元素
参数 没有参数
返回值 被删除的那个元素
- Push
在数组的结尾处添加一个新的元素
参数 0个或多个 就是新元素
返回值 添加元素后新数组的长度
- Reduce
Reduce
将数组元素计算作为一个值 一般用于迭代
参数 第一个参数是回调函数 第二个参数是初始值(可选)
返回值
- Reverse
-
反转数组
参数
返回值 反转后的新数组
- Reduceright
- 跟reduce的用法一致,从右往左迭代,
- Shift
删除数组前面第一个元素
返回值删除的那个元素
- Slice
截取数组
参数 2个参数number 起始位置 结束位置
返回值 截取后的新的数组
深拷贝
- Some
判断数组中的元素 是否有符合条件的,只要有符合的返回就是true,都不符合返回时false
参数 第一个是回调函数 第二个是数值对象(改变函数中this指向)
返回值是true和false
- Sort
-
排序 靠字母和数字的先后顺序。
参数
返回值
- Splice
从数组中添加或删除或更改数组中的元素
参数 第一个参数,起始位置,第二个参数,删除个数,第三类是添加的新元素
返回值 返回删除的元素所构成的新数组
- Tolocalestring
- 用法和join一样。
- Tostring
将数组转化为字符串
没有参数
返回值 转换后的字符串
- Unshift
在数组前面添加新元素
参数 0个或多个
返回值 新数组的长度
- IsArray() 它是Array这个类身上的方法
判断一个对象是否是数组
参数 1个
返回值 true和false
34.from 他是Array类上面的方法
将两类对象变成真数组,一是伪数组,一是可遍历的对象。
伪数组,函数的参数arguments 获取的dom集合。
参数 伪数组
返回值 改变后的真数组

数组中具有拷贝功能的方法
- Concat slice map filter
函数中this的指向问题?
- 函数调用前面没有. Fn() 看函数处再谁的作用域下函数就指向谁,一般都是window。
- 函数调用前面带. .前面的对象是谁,就指向谁。
- 只要是定时器里面的this,不管函数前带不带.都指向window
是因为定时器会单独开辟一个线程,跟之间的线程没有关系。
This的特例
Call()
- call前面的那个对象必须是函数
- 两类参数,第一类是替换前面函数中this的一个对象,第二类是Fn的实参
Fn.call(obj) 将Fn函数中的this替换成obj然后执行Fn()
Apply()
- apply前面的对象必须是函数
- 两个参数 第一个是替换Fn中this的对象,第二个是数组,是Fn实参构成的数组
- 如果第一个参数传null和undefined,不改变this
案例 找出数组中的最小值?

Bind() 典型的柯里化函数代表。
- bind前面的对象必须是函数
- Fn.bind(obj)只替换Fn中的this,但是不执行Fn




浙公网安备 33010602011771号