创建数组
创建数组有两种方法,一个是通过new方法来创建,另一个就是直接通过字面量来创建,看网上有说通过new关键字来创建数组对象要比直接通过字面量来创建数组耗内存,这个我没有实际测试过,个人感觉在小数据量的时候两者之间的差距是相同的。我个人比较倾向于使用字面量来创建,方便简洁。
使用new关键字创建数组的方式为
var myArray = new Array();//直接生成一个空的数组
var myArray = new Array(10);//直接生成一个长度为10的数组
var myArray = new Array(10,11);//直接生成有两个数据的数组
使用字面量来创建的方式为
var myArray = [];//直接生成一个长度为10的数组
var myArray = [1,2];//直接生成一个含有两条数据的数组
向数组中添加数据可以分为向尾部添加和头部添加。
push();----就是在数组的尾部添加数据项,该方法的参数个数可以自定义;
unshift();--就是向数组的头部插入数据项信息,该方法的参数个数可以自定义;
var colors = [];//创建数组
colors.push("red","green");//向后面插入两项数据
colors.unshift("black","yellow");//向前面插入两条数据
console.log(colors);//输出["black","yellow","red","green"]
获取数组数据如果知道下标可以直接获取,javascript也提供了获取数组头部和尾部的数据的方法
pop();---该方法就是获取数组的最尾部的一个数据项,该函数无需传递任何参数;
shift();---获取数组的头部一项的数据信息;
var color = ["black","yellow","red","green"]
console.log(color[2]);//输出red
console.log(color.pop());//输出green
console.log(color.shift());//输出blcak
在平时项目开发中,我们往往会遇到,判断一个对象是否为数组(函数的参数传递中),那么如果判断一个对象是否为数组呢,有以下两种方式
1)第一种方法
if(value instanseof Array){
}
2)第二种方法
if(Array.isArray(value)){
}//该方法只使用与高版本的浏览器:IE9+、Firefox4+/Chrome
slice() ---数组的拷贝操作,可以传递一到两个参数[start,end]如果没有第二个参数默认到数组结尾。
var numbers = [1,2,3,4,5]
console.log(numbers.slice(2));//输出[3,4,5]
console.log(numbers.slice(0,2));//输出[1,2,3]
slice方法的拷贝操作是返回一个新的数组,操作新的数组不会影响旧的数组,如果使用=连接来复制数组,操作新的数组时会改变旧的数组
var nus = [1,2,3,4];
var nusde = nus;
nusde[0] = 9;
console.log(nus[0]);//输出9
splice(index,howmany,item1,.....,itemX) ---删除数组中的元素,并返回删除的数据
参数 | 描述 |
---|---|
index | 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。 |
howmany | 必需。要删除的项目数量。如果设置为 0,则不会删除项目。 |
item1, ..., itemX | 可选。向数组添加的新项目。 |
我们将创建一个新数组,并向其添加一个元素:
<script type="text/javascript">
var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"
document.write(arr + "<br />")//输出George,John,Thomas,James,Adrew,Martin
arr.splice(2,0,"William")
document.write(arr + "<br />")//输出George,John,William,Thomas,James,Adrew,Martin
数组的连接可以使用push方法,但是需要循环一下要连接的数组,方法比较麻烦,js提供了一个方法,可以直接将两个数组连接成一个数组--concat()
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
var arr2 = new Array(3)
arr2[0] = "James"
arr2[1] = "Adrew"
arr2[2] = "Martin"
console.log(arr.concat(arr2))//输出['George','John','Thomas','James','Adrew','Martin']