JS中常用的内置对象:
(1)Array(数组)对象:
具有相同数据的一个或多个值的集合;例如:
第一种数组对象的创建方式:
第二种数组对象的创建方式:
第二种数据对象的创建方式里又有两种方法给它赋值:
(1)直接在里面赋值:
(2)在外面分别赋值:
length是数组里的属性,可以打印出数组的数量;
数组中的方法:
1.用join的方法:可以把数组变成字符串进行分隔:
在join里用"&"可以在地址栏里把数据传参串联起来;
2.用sort的方法:对数组进行排序:会改变原数组;
缺点:直接写sort只对个位数排序有效,对多位数会以第一个数字的大小进行排序;
那么如何用sort对多位数数字进行排序呢?:
sort是特殊的参数传函数的方法:
从小到大排序 or 从大到小排序:
也可以把函数调用出来写,效果是一样的:
3.index of:找的到就会显示数组的下标数据,如果找不到就是-1;
来判断我要的数据是否在数组中存在;返回的都是数字类型;
可以从负数开始找,也可以传第二个参数;
4.push():
向数组的末尾添加一个或多个元素,
5.includes():
和index of相似,都是来查找数值是否存在,但是它是返回true 或者false;存在就是true.不存在是false;
6.concat():
合并两个数组,会生成一个新数组,不会对原数组造成改变;
7. 拓展运算符... :
拓展运算符的方法也可以合并:
8.pop():
删除数组中最后一个元素,会返回这个元素:
9.unshift():
会在之前的数组最前面添加一个或多个元素,会返回新的长度;
10.shift():
删除数组中第一个元素,会返回这个元素:
11.splice():
对数组指定位置的元素进行增删该操作:
aplice()里必须要写三种参数:(1)元素所在的下标;(2)删除元素的个数;(3)需要添加的元素;
当splice(0,0)时返回的是空数组;
当splice(-2,2)为负值的时候,可以成立吗?:成立,从后面开始数;
1.(不删除,只添加内容的时候):
2.删除某个数组的时候:
3.既删除,又添加的时候,可以理解为修改:
12.slice():返回被删除的元素;
第一个参数是索引值,返回从索引值到数值末尾的元素,是正数;第一个参数也可以是负值,倒着数,从数组末尾开始返回;
第二个参数是结束索引位置-1 半闭合 ;
13.reverse():倒序排;返回的是倒序后的数组;
14.tostring()方法:返回不带括号的字符串;
数组身上的tostring()方法,是把数字转为字符串:直观效果是去括号:
ps:1.无论里面嵌套多少的括号,用tostring()方法都可以去掉;
2.数组,字符串和数字都有tostring()方法;但是数字使用tostring()方法要用变量的方式,不能直接数字;
15.find()方法: 只返回第一个符合要求的值;否则就返回undefined;
作用:通过return作为判断条件,返回一个新的对象;
有三个参数:第一个参数:item是每一个元素 相当于循环;
第二个参数:index是每一个元素的索引;
第三个参数:array是原数组;
16.filter()方法: 返回所有符合要求的值;
参数是相同的,返回值和find不一样;
作用:通过return的判断条件为true的形成一个新数组;
17.every()方法: 返回的值是true或false;
如果数组中有一个不满足,就返回false;
18.some()方法:他返回的是true或者false;只要有一个满足了,就true;
所有的都不满足:false;
测试数组中是不是至少有一个元素通过了被提供的函数测试;
19.reduce():接收一个函数作为累加器,最终计算为一个值 ;
reduce:一共4个参数
第一个参数:acc :累计器
第二个参数:cur :当前值
第三个参数:index:当前索引
第四个参数:src:原数组 返回值
20.map()方法:每个元素都要进行相同的运算后得出结果;
map可以return,可以把你需要的数据变成一个新的数组返回给你;
21.forEach()方法:就相当于循环;
但是在回调函数里,是不可以return出一个值,但是可以使用return去终止方法的执行;
forEach循环,循环结束没有返回值,返回值为undefined;
22.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的方法比较古老,不支持;