对于一个网页或者一个全局作用域可以使用instanceof操作符。
if(value instanceof array){ //判断value是否是数组
}
instanceof操作符它假设只有一个全局执行环境,如果网页包含多个框架则使用ecmascript5新增的array.isarray()方法。
if(array.isarray(value)){//判断value是否是数组
}
array.isarray()方法支持的浏览器有ie9+、firefor 4+、safari5+、opera 10.5+、chrome。
如果要在未实现这个方法中的浏览器中检查数组,则使用:
if(object.prototype.tostring.call(value)==[object array]){
}
将数组转换为字符串: tolocalestring()、tostring()、valueof()、join()
复制代码 代码如下:
var test=['a','b','c'];
alert(test.tostring());//a,b,c
alert(test.tolocalestring());//a,b,c
alert(test.valueof());//a,b,c
alert(test);//a,b,c 默认调用tostring()方法
alert(test.join(','));//a,b,c
alert(test.join('|'));//a|b|c
添加和移除数组元素方法:push()、pop()、unshift()、shift()
push()方法可以接受任意数量的参数,把他们逐个加到数组末尾,并且返回数组修改后的数组长度。
pop()方法从数组末尾移除最后一项,然后返回移除的项。
unshift()方法在数组前端添加任意数量的参数并返回新数组长度。
shift()方法能够移除数组中第一个项并返回移除的项。
复制代码 代码如下:
var test=[];
var count = test.push('a','b');//从数组末尾逐个添加
count =test.push('c');
alert(count);//3
alert(test);//
var item = test.pop();
alert(item);//c
alert(test.length);//2
排序方法:reverse()和sort()
reverse()方法会反转数组项顺,操作数组本身。
sort()方法默认按升序排列数组项,操作数组本身。
复制代码 代码如下:
var test=[1,2,3,4,5];
test.reverse();
alert(test);//5,4,3,2,1
var test2=[0,1,5,10,15];
test2.sort();
alert(test2);//0,1,10,15,5 sort()方法会调用每个数组项的tostring()方法,比较字符串,以确定排序。所以这里排序是字符串排序
sort()方法还可以传入一个比较函数。
比较函数在第一个参数应该位于第二个之前则返回一个负数,如果两个参数相等则返回0,第一个参数应该位于第二个之后则返回一个正数。
复制代码 代码如下:
function compare(value1,value2){
if(value1 return -1;
}else if(value1>value2){
return 1;
}else{
return 0;
}
}
var test=[0,1,5,10,15];
test.sort(compare);
alert(test);//0,1,5,10,15
操作方法:concat()、slice()、splice()
concat()方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。返回一个新的数组。
复制代码 代码如下:
var a = [1,2,3];
alert(a.concat(4,5));//1,2,3,4,5
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
alert(arr.concat(arr2));
//george,john,thomas,james,adrew,martin
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
var arr3 = new array(2)
arr3[0] = william
arr3[1] = franklin
alert(arr.concat(arr2,arr3))
//george,john,thomas,james,adrew,martin,william,franklin
slice() 方法可从已有的数组中返回选定的元素。返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayobject 中的元素。
复制代码 代码如下:
var test =['a','b','c','d','e'];
var arr1=test.slice(1);
var arr2=test.slice(1,4);
alert(arr1);//b,c,d,e
alert(arr2);//b,c,d
splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。操作数组本身。
第一个参数:起始位置、第二个参数:截取的个数、第三个参数:追加的新元素。
复制代码 代码如下:
//删除
var test=['a','b','c'];
var removed=test.splice(0,1)//删除第一项
alert(test);//b,c
alert(removed);//a 返回被删除的项
//插入
var test2=['a','b','c'];
var removed2=test2.splice(1,0,'d','e')//从位置1开始插入d,e
alert(test2);//a,d,e,b,c
alert(removed2)//空数组
//替换
var test3=['a','b','c'];
var removed3=test3.splice(1,1,'d','e')//从位置1开始插入d,e
alert(test3);//a,d,e,c
alert(removed3)//b
位置方法:indexof()、lastindexof()
ecmascript5提供方法支持浏览器:ie9+、firefox 2+、safari 3+、opera 9.5+、chrome
indexof() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
lastindexof() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。
一个参数时:表示要查找的值,返回索引位置(从0开始)、两个参数时:第一个参数表示起始位置,第二个参数表示要查找的值。
复制代码 代码如下:
var numbers=[1,2,3,4,5,4,3,2,1];
alert(numbers.indexof(4));//3
alert(numbers.lastindexof(4));//5alert(numbers.indexof(4,4));//5
alert(numbers.lastindexof(4,4));//3
迭代方法:every()、filter()、foreach()、map()、some()
ecmascript5提供方法支持浏览器:ie9+、firefox 2+、safari 3+、opera 9.5+、chrome
every():对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true。
filter():对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组。
foreach():对数组中的每一项运行给定函数,这个方法没有返回值。
map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
some():对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true。
以上函数都不会修改数组中包含的值。
复制代码 代码如下:
var numbers=[1,2,3,4,5,4,3,2,1];
//every()
var everyresult=numbers.every(function(item,index,array){
return (item>2);
})
alert(everyresult);//false
//some()
var someresult=numbers.some(function(item,index,array){
return (item>2);
})
alert(someresult);//true
//filter()
var filterresult=numbers.filter(function(item,index,array){
return (item>2);
})
alert(filterresult);//[3,4,5,4,3]//map()
var mapresult=numbers.map(function(item,index,array){
return (item*2);
})
alert(mapresult);//[2,4,6,8,10,8,6,4,2]
//foreach()
numbers.foreach(function(item,index,array){
//执行操作 无返回值
})
归并方法:reduce()、reduceright()
ecmascript5提供方法支持浏览器:ie9+、firefox 3+、safari 4+、opera 10.5+、chrome
两个方法都会迭代数组的所以项,然后构建一个最终返回的值。reduce()方法从数组第一项开始,reduceright()方法从数组最后开始。
复制代码 代码如下:
var values=[1,2,3,4,5];
var sum=valuse.reduce(function(prev,cur,index,array){
prev+cur;
});
alert(sum);//15
以上就是本文的全部内容了,希望大家能够喜欢。
