javascript学习-Array

Array 数组对象

1.定义

var array = new Array();

var array = new Array(size);//size-数组大小

var array= new Array(element0,…,elementN);//element0,…,elementN放到数组中的元素

[ ] 符号访问数组中单个元素

2.属性

length

3.方法

  • concat

array1.concat([item1[, item2[, . . . [, itemN]]]])

返回一个新数组,这个新数组是由两个或更多数组组合而成的。

  • join

arrayObj.join(separator)

返回字符串值,其中包含了连接到一起的数组的所有元素,元素由指定的分隔符分隔开来

  • pop

arrayObj.pop( )

移除数组中的最后一个元素并返回该元素

  • push

arrayObj.push([item1 [item2 [. . . [itemN ]]]])

将新元素添加到一个数组中,并返回数组的新长度值

  • reverse

arrayObj.reverse( )

返回一个元素顺序被反转的 Array 对象

  • shift

arrayObj.shift( )

移除数组中的第一个元素并返回该元素

  • unshift

arrayObj.unshift([item1[, item2 [, . . . [, itemN]]]])

将指定的元素插入数组开始位置并返回该数组

  • slice

arrayObj.slice(start, [end])

返回一个数组的一段

  • sort

arrayobj.sort(sortfunction)

返回一个元素已经进行了排序的 Array 对象,默认按照 ASCII 字符顺序进行升序排列

  • splice

arrayObj.splice(start, deleteCount, [item1[, item2[, . . . [,itemN]]]])

从一个数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素

  • toString

Array 的元素转换为字符串。结果字符串由逗号分隔,且连接起来

  • valueOf

Array 的元素转换为字符串。结果字符串由逗号分隔,且连接起来

4.扩展方法

引用自:http://erik.eae.net/archives/2005/06/05/17.53.19/

// Mozilla 1.8 has support for indexOf, lastIndexOf, forEach, filter, map, some, every
// http://developer-test.mozilla.org/docs/Core_JavaScript_1.5_Reference:Objects:Array:lastIndexOf
if (!Array.prototype.indexOf) {
    Array.prototype.indexOf = function (obj, fromIndex) {
        if (fromIndex == null) {
            fromIndex = 0;
        } else if (fromIndex < 0) {
            fromIndex = Math.max(0, this.length + fromIndex);
        }
        for (var i = fromIndex; i < this.length; i++) {
            if (this[i] === obj)
                return i;
        }
        return -1;
    };
}

// http://developer-test.mozilla.org/docs/Core_JavaScript_1.5_Reference:Objects:Array:lastIndexOf
if (!Array.prototype.lastIndexOf) {
    Array.prototype.lastIndexOf = function (obj, fromIndex) {
        if (fromIndex == null) {
            fromIndex = this.length - 1;
        } else if (fromIndex < 0) {
            fromIndex = Math.max(0, this.length + fromIndex);
        }
        for (var i = fromIndex; i >= 0; i--) {
            if (this[i] === obj)
                return i;
        }
        return -1;
    };
}

// http://developer-test.mozilla.org/docs/Core_JavaScript_1.5_Reference:Objects:Array:forEach
if (!Array.prototype.forEach) {
    Array.prototype.forEach = function (f, obj) {
        var l = this.length;    // must be fixed during loop... see docs
        for (var i = 0; i < l; i++) {
            f.call(obj, this[i], i, this);
        }
    };
}

// http://developer-test.mozilla.org/docs/Core_JavaScript_1.5_Reference:Objects:Array:filter
if (!Array.prototype.filter) {
    Array.prototype.filter = function (f, obj) {
        var l = this.length;    // must be fixed during loop... see docs
        var res = [];
        for (var i = 0; i < l; i++) {
            if (f.call(obj, this[i], i, this)) {
                res.push(this[i]);
            }
        }
        return res;
    };
}

// http://developer-test.mozilla.org/docs/Core_JavaScript_1.5_Reference:Objects:Array:map
if (!Array.prototype.map) {
    Array.prototype.map = function (f, obj) {
        var l = this.length;    // must be fixed during loop... see docs
        var res = [];
        for (var i = 0; i < l; i++) {
            res.push(f.call(obj, this[i], i, this));
        }
        return res;
    };
}

// http://developer-test.mozilla.org/docs/Core_JavaScript_1.5_Reference:Objects:Array:some
if (!Array.prototype.some) {
    Array.prototype.some = function (f, obj) {
        var l = this.length;    // must be fixed during loop... see docs
        for (var i = 0; i < l; i++) {
            if (f.call(obj, this[i], i, this)) {
                return true;
            }
        }
        return false;
    };
}

// http://developer-test.mozilla.org/docs/Core_JavaScript_1.5_Reference:Objects:Array:every
if (!Array.prototype.every) {
    Array.prototype.every = function (f, obj) {
        var l = this.length;    // must be fixed during loop... see docs
        for (var i = 0; i < l; i++) {
            if (!f.call(obj, this[i], i, this)) {
                return false;
            }
        }
        return true;
    };
}

Array.prototype.contains = function (obj) {
    return this.indexOf(obj) != -1;
};

Array.prototype.copy = function (obj) {
    return this.concat();
};

Array.prototype.insertAt = function (obj, i) {
    this.splice(i, 0, obj);
};

Array.prototype.insertBefore = function (obj, obj2) {
    var i = this.indexOf(obj2);
    if (i == -1)
        this.push(obj);
    else
        this.splice(i, 0, obj);
};

Array.prototype.removeAt = function (i) {
    this.splice(i, 1);
};

Array.prototype.remove = function (obj) {
    var i = this.indexOf(obj);
    if (i != -1)
        this.splice(i, 1);
};

posted @ 2009-10-09 13:02  lib  阅读(333)  评论(0编辑  收藏  举报