06-17 JS内置对象(Array(数组)对象)-对数组的改变方法-学习总结

JS中常用的内置对象:

(1)Array(数组)对象:

具有相同数据的一个或多个值的集合;例如:

第一种数组对象的创建方式:

相同数据的一个或多个值的集合

第二种数组对象的创建方式:

size值是空的,可以往里面塞数值

第二种数据对象的创建方式里又有两种方法给它赋值:

(1)直接在里面赋值:

里面赋值

(2)在外面分别赋值:

在外面分别赋值(用的不多,了解即可)

length是数组里的属性,可以打印出数组的数量;

用这样的方法一样可以打印出数组的所有值

数组中的方法:

1.用join的方法:可以把数组变成字符串进行分隔:

用join方法是把数组变成字符串

在join里用"&"可以在地址栏里把数据传参串联起来;

join方法

2.用sort的方法:对数组进行排序:会改变原数组;

缺点:直接写sort只对个位数排序有效,对多位数会以第一个数字的大小进行排序;

多位数数字排序有误

那么如何用sort对多位数数字进行排序呢?:

sort是特殊的参数传函数的方法:

从小到大排序 or 从大到小排序:

用sort和function改变对多位数的排序

也可以把函数调用出来写,效果是一样的:

从小到大排序 or 从大到小排序:

3.index of:找的到就会显示数组的下标数据,如果找不到就是-1;

来判断我要的数据是否在数组中存在;返回的都是数字类型;

来判断我要的数据是否在数组中存在

可以从负数开始找,也可以传第二个参数;

可以从负数开始找,也可以传第二个参数;

4.push():

向数组的末尾添加一个或多个元素,

push()向数组的末尾添加一个或多个元素,

5.includes():

和index of相似,都是来查找数值是否存在,但是它是返回true 或者false;存在就是true.不存在是false;

存在就是true.不存在是false;

6.concat():

合并两个数组,会生成一个新数组,不会对原数组造成改变;

会拼接在一起

7. 拓展运算符...  :

拓展运算符的方法也可以合并:

用...的方式

8.pop():

删除数组中最后一个元素,会返回这个元素:

pop():

9.unshift():

会在之前的数组最前面添加一个或多个元素,会返回新的长度;

unshift():

10.shift():

删除数组中第一个元素,会返回这个元素:

shift()

11.splice():

对数组指定位置的元素进行增删该操作:

aplice()里必须要写三种参数:(1)元素所在的下标;(2)删除元素的个数;(3)需要添加的元素;

当splice(0,0)时返回的是空数组;

当splice(-2,2)为负值的时候,可以成立吗?:成立,从后面开始数;

1.(不删除,只添加内容的时候):

splice()

2.删除某个数组的时候:

splice()

3.既删除,又添加的时候,可以理解为修改:

splice()

12.slice():返回被删除的元素;

第一个参数是索引值,返回从索引值到数值末尾的元素,是正数;第一个参数也可以是负值,倒着数,从数组末尾开始返回;

第二个参数是结束索引位置-1 半闭合 ;


13.reverse():倒序排;返回的是倒序后的数组;


14.tostring()方法:返回不带括号的字符串;

数组身上的tostring()方法,是把数字转为字符串:直观效果是去括号:

ps:1.无论里面嵌套多少的括号,用tostring()方法都可以去掉;

        2.数组,字符串和数字都有tostring()方法;但是数字使用tostring()方法要用变量的方式,不能直接数字;

tostring()方法

15.find()方法: 只返回第一个符合要求的值;否则就返回undefined;

作用:通过return作为判断条件,返回一个新的对象;

有三个参数:第一个参数:item是每一个元素  相当于循环;

第二个参数:index是每一个元素的索引;

第三个参数:array是原数组;

find()方法: 只返回第一个符合要求的值;

16.filter()方法: 返回所有符合要求的值;

参数是相同的,返回值和find不一样;

作用:通过return的判断条件为true的形成一个新数组;

filter()方法: 返回所有符合要求的值;

17.every()方法: 返回的值是true或false;

如果数组中有一个不满足,就返回false;

every()方法:返回的是true或false;

18.some()方法:他返回的是true或者false;只要有一个满足了,就true;

所有的都不满足:false;

测试数组中是不是至少有一个元素通过了被提供的函数测试;

some()方法

19.reduce()接收一个函数作为累加器,最终计算为一个值 ;

        reduce:一共4个参数

        第一个参数:acc :累计器

        第二个参数:cur :当前值

        第三个参数:index:当前索引

        第四个参数:src:原数组 返回值

reduce():接收一个函数作为累加器,最终计算为一个值 ;

20.map()方法:每个元素都要进行相同的运算后得出结果;

map可以return,可以把你需要的数据变成一个新的数组返回给你;

map()方法:

21.forEach()方法:就相当于循环;

但是在回调函数里,是不可以return出一个值,但是可以使用return去终止方法的执行;

forEach循环,循环结束没有返回值,返回值为undefined;

forEach()方法:就相当于循环;

22.findIndex()方法:返回第一个符合要求的值的索引;

findIndex()方法

ps:如何计算几次方:

第一种方法:Math.pow(item,3)【第一个参数是数组值,第二个参数是几次方】;

第二种方法:item ** 3 【用**连接,数字是几,就是几次方】;==>ES6新增 次幂;

如何计算几次方

什么是伪数组:1.只有length属性的数组,2,按索引方式存储数据,3.没有数组的方法;

三种伪数组情况:1.Dom ;2.关键字arguments:用于接收一些参数 ;3.字符串;

那么我们如何判断是不是伪数组呢?:

ES6提供的方法:1.Array.isArray(变量名);

ES6之前提供的方法:1.变量名 instanceof Array;

2.更好的一种方法:object.prototype.tostring.call(变量名)。indexof(“Array”)>-1 ==>true(代表是数组)  | | false(代表不是数组);

三种伪数组情况

那么我们如何把伪数组传为数组呢?:

ES6方法1:用Array.from转为数组;

ES6方法2:用[...]拓展运算符 将伪数组转为数组;

ES5方法3:Array.prototype.slice.call(arguments);

ps:但是之前学会Set数据解构,它也是一种伪数组的形式,但是不能用这样的方法(Es5的转换数组的方法)是实现转换成真数组,因为ES5的方法比较古老,不支持;

你可能感兴趣的:(06-17 JS内置对象(Array(数组)对象)-对数组的改变方法-学习总结)