HTML笔记 ·

javascript对数组的基本操作

创建数组

创建数组有两种方法,一个是通过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']

 

参与评论