Array类型
创建方法
var n = new Array()
var n = []
var n = [1,2,3]
属性
数组的length属性它不是只读
的。通过改变这个属性。可以向数组中添加新项目或者删除项目。
var a = [1,2];
a[2] = 3;//a[1,2,3];
a.length = 2;//a[1,2]
a.length = 3;//a[1,2,undefined]
检测数组
n instanceof Array
Array.isArray(n)
Douglas Crockford的版本
var isArray = function(a){
return a &&
typeof a === 'object' &&
typeof a.length === 'number' &&
typeof a.splice === 'function' &&
!(a.propertyIsEnumerable('length'));
}
JQuery的版本
var isArray = function(v){
return Object.prototype.toString.apply(v) === '[object Array]';
}
Prototype的版本
var isArray = function(object) {
return object != null && typeof object === "object" &&
'splice' in object && 'join' in object;
}
方法
toString()
valueOf()
join()
可以用不同分隔符来构建这个字符串。
var linshui = [1,2,3];
var test = linshui.join("||");
console.log(test)// 1||2||3
push()
接受任意数量参数,逐个添加到数组末尾
pop()
从数组末尾移除最后一项,减少Length值
shift()
移除数组中第一个项并返回
unshift()
数组前添加任意个数项并返回数组长度
sort()
调用每个数组项的toString()方法比较。也可传入比较函数。
function compare(v1,v2){
if(v1 < v2){
return -1;
}
if(v1 > v2){
return 1;
}else{
return 0;
}
}
var test = [2,10,3,1];
test.sort(compare);//[1,10,2,3]
console.log(test);//[1,2,3,10]
reverse()
翻转数组
contact()
基于当前数组项重新创建一个数组并把参数添加到数组末尾
slice()
不影响原始数组。传入一个参数,表示返回从指定位置到末尾的所有项。传入两个参数,表示开始位置和结束位置。
splice()
向数组中部插入项。
splice(0,2) 删除数组前两项。(要删的第一项的位置,删除的项数)
splice(2,0,'linshui','zhaoying')
从当前数组的位置2开始插入字符串(起始位置,要删除的项数,要插入的项)
splice(2,1,'linshui')向指定位置插入人员数量的项,同时删除任意数量的项。达到替换效果。(起始位置,要删除的项数,要插入的任意数量的项)
indexOf
从数组开头向后查询
lastIndexOf
从数组末尾向前查询
every()
对数组中每一项运行给定函数,如果该函数对每一项返回true,则返回true
filter()
对数组中每一项运行给定函数,返回该函数会返回true的项
forEach()
对数组中每一项运行给定函数,没有返回值
map()
对数组中每一项运行给定函数,返回每次函数调用的结果组成的数组
some()
对数组中每一项运行给定函数,如果函数对任一项返回true,则返回true
Date()
这其实是相比较以上的方法最常用的一个函数。
var d = new Date();
console.log(d);//Thu Jan 28 2016 14:15:07 GMT+0800 (CST)
console.log(d.toDateString());//Thu Jan 28 2016
console.log(d.toTimeString());//14:15:07 GMT+0800 (CST)
console.log(d.toLocaleDateString());//2016/1/28
console.log(d.toUTCString());//Thu, 28 Jan 2016 06:15:07 GMT