首页 > 代码库 > JavaScript中数组高级编程实践-2

JavaScript中数组高级编程实践-2

我们来 看 EcmaScript5 规范中的 数组新的API ,它们是非常有用的,

介绍完这一部分 ,我们将用 Array 数组 这个对象 来构建 一个类似于Java中ArrayList 类,

以便于封装 通用 的逻辑,实现代码复用。


API :

/**
@param {Function} callback
@param {Object} [initialValue]
@return {Object}
*/
Array.prototype.reduce = function(callback,initialValue) {};
/**
@param {Function} callback
@param {Object} [initialValue]
@return {Object}
*/
Array.prototype.reduceRight = function(callback,initialValue) {};
/**
@param {Object} searchElement
@param {number} [fromIndex]
@return {number}
*/
Array.prototype.indexOf = function(searchElement,fromIndex) {};
/**
@param {Object} searchElement
@param {number} [fromIndex]
@return {number}
*/
Array.prototype.lastIndexOf = function(searchElement,fromIndex) {};
/**
@param {Function} callback
@param {Object} [thisObject]
@return {boolean}
*/
Array.prototype.every = function(callback,thisObject) {};
/**
@param {Function} callback
@param {Object} [thisObject]
@return {Array}
*/
Array.prototype.filter = function(callback,thisObject) {};
/**
@param {Function} callback
@param {Object} [thisObject]
@return {void}
*/
Array.prototype.forEach = function(callback,thisObject) {};
/**
@param {Function} callback
@param {Object} [thisObject]
@return {Array}
*/
Array.prototype.map = function(callback,thisObject) {};
/**
@param {Function} callback
@param {Object} [thisObject]
@return {boolean}
*/
Array.prototype.some = function(callback,thisObject) {};
/**
@param {Object} object
@return {boolean}
*/
Array.prototype.isArray = function(object) {};

使用:

/**
 *@class MyEcmaScript5
 *@description
 *@time 2014-09-16 21:38
 *@author StarZou
 **/

// 定义一个数组,存储不同数据类型的元素
var array = [8, 2, 1, 5],
    array2 = [
        [0, 1],
        [1, 2],
        [2, 3]
    ],
    value;

/// Array.prototype.reduce = function(callback,initialValue) {};
// 化解数组:
// 调用reduce 方法提供的回调函数,
// 总共调用 数组的lenght - 1次 回调函数
// 第一次时 previousValue 为 initialValue
// 此后 reduce方法的返回值 作为 previousValue

// reduceRight 则从数组最右边开始,进行上述操作


// 数组中元素累加
value = http://www.mamicode.com/array.reduce(function (previousValue, currentValue, index, array) {>
运行结果:




JavaScript中数组高级编程实践-2