JavaScript中数组格式深入讲解
数组的建立之构造函数
var colors = new Array();
var colors = new Array(20);如果预先知道数组要保存的项目数量,也可以给构造函数传递该数量,而该数量会自动变成length
var colors = new Array(“red”, “blue”, “green”);也可以向Array 构造函数传递数组中应该包含的项。
数组的检测
typeof操作符把数组归类到了对象中, 所以要判断一个数据是对象还是数组我们需要新的操作符来实现
instanceof 操作符
Array.isArray()
Array.isArray(待检测变量)
待检测变量 instanceof Array
数组的队列操作方法
队列:
Array.push(数组项目5),往数组末尾增加一个数组项目,与此同时,数组的length自动加1
Array.shift()删除数组的第一个数组项目,与此同时,数组的length自动减1
Array.unshift(数组项目0)往数组开始位置增加一个数组项目与此同时,数组的length自动加1
Array.pop()删除数组的最后一个数组项目 与此同时,数组的length自动减1
栈:
Array.push(数组项目5)往数组末尾增加一个数组项目与此同时,数组的length自动加1
Array.pop()删除数组的最后一个数组项目与此同时,数组的length自动减1
数组高级方法
数组中已经存在两个可以直接用来重排序的方法:reverse()和sort()
reverse()方法会反转数组项的顺序直接在原始的数组上排序, 只是单纯的调转数字的数组项目的整体顺序而已。该方法会改变原始的数组。
var values=[1,2,3,4];
values.revers();
sort()方法会按照字符串的先后顺序对数组的每一个数组项目的字符顺序来进行排序的
如果数组的某个项目不是字符串, 那么会先把数组项目转换为字符串,再来按照字符串的比较方式来排序
该方法会改变原始的数组
sort()方法可以传入一个参数, 该参数必须为一个函数(被称为比较函数),比较函数接收两个参数
<script>
var c=[1,2,3,4];
c.sort=(function(x,y){
if(x<y)
return -1;
else if(x>y)//降序
return 1;
else
return 0;
});
</script>
concat()操作方法
concat()方法可以基于当前数组中的所有项创建一个新数组。具体来说,这个方法会先创建当前数组一个副本,然后将接收到的参数添加到这个副本的末尾,最后返回新构建的数组。
简单来说, concat()方法不会改变原数组
slice()操作方法
slice()方法可以接受一或两个参数,即要返回项的起始和结束位置。
情况1:如果不传入参数的情况下, silce()方法返回完整的数组
情况2:在只有一个参数的情况下,slice()方法返回从该参数指定位置开始到当前数组末尾的所有项。
情况3:如果有两个参数,该方法返回起始和结束位置之间的项——但不包括结束位置的项。
注意,slice()方法不会影响原始数组
<script>
//情况1:
var color1=["red","pink","blue"];
console.log(color1.slice());
//情况二
console.log(color1.slice(1));//从1开始
//情况三
console.log(color1.slice(0,2));前面2个
</script>
splice()操作方法
splice()是最强大的数组方法, 主要功能有以下三大类
注意,splice()方法会影响原始数组
var colors = [“red”, “green”, “blue”, “yellow”, “purple”];
删除:可以删除任意数量的项,只需指定2 个参数:要删除的第一项的位置和要删除的项数。
例如,splice(0,2)会删除数组中的前两项。
插入:可以向指定位置插入任意数量的项,只需提供3 个参数:起始位置、0(要删除的项数)
和要插入的项。如果要插入多个项,可以再传入第四、第五,以至任意多个项。例如,
splice(2,0,“red”,“green”)会从当前数组的位置2 开始插入字符串"red"和"green"。
替换:可以向指定位置插入任意数量的项,且同时删除任意数量的项,只需指定3 个参数:起
始位置、要删除的项数和要插入的任意数量的项。插入的项数不必与删除的项数相等。例如,
splice (2,1,“red”,“green”)会删除当前数组位置2 的项,然后再从位置2 开始插入字符串
“red"和"green”。
位置方法
ECMAScript 5 为数组实例添加了两个位置方法:indexOf()和lastIndexOf()。
这两个方法都接收两个参数:要查找的项和(可选的)表示查找起点位置的索引。
其中,indexOf()方法从数组的开头(位置0)开始向后查找,lastIndexOf()方法则从数组的末尾开始向前查找。
这两个方法都返回要查找的项在数组中的位置,或者在没找到的情况下返回-1。在比较第一个参数与数组中的每一项时,会使用全等操作符;也就是说,要求查找的项必须严格相等(就像使用===)。
数组中的位置,或者在没找到的情况下返回-1。在比较第一个参数与数组中的每一项时,会使用全等操作符;也就是说,要求查找的项必须严格相等(就像使用===)。[外链图片转存中…(img-OOdwdgXk-1594566437702)]