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