javascript学习记录-数组(6) 2014/02/23

数组的方法 之 ECMAScript 5 部分

一共是9个。与前面ECMAScript 3的方法乱乎乎的不同,5的方法默认都不会修改原数组

  1. forEach (处理的函数(数组的元素[, 元素的索引, 数组本身]){ //处理…… })

传递1个参数

var data = [1, 2, 3, 4, 5];
var sum = 0;
data.forEach(function(value) {
    sum += value;    // 求数组元素值之和
});
data    // [1, 2, 3, 4, 5]
sum    // 15

传递3个参数

data.forEach(function(v, i, a) {
    a[i] = v +1;    // 修改数组的值为“原值+1”
});
data    // [2, 3, 4, 5, 6]

forEach一旦开始执行是没办法通过常规的方法提前中止执行的,比如break这样的语句是无效的

唯一的方法是将forEach方法放在一个try……catch中,然后通过抛出foreach.break异常的方式中止。

function foreach(a, f, t){
    try {
        a.forEach(f,t);
    }catch (e) {
        if (e === foreach.break) {
            return;
        } else {
            throw e;
        }
    }
}

foreach.break = new Error("StopIteration");

var a = [1, 2, 3, 4, 5, 6];

function b(v, i, a) {
    if(v>3) 
        foreach.break;
    else 
        a[i] = 0;
}

foreach(a,b);

a    // [0, 0, 0, 4, 5, 6]

你可能感兴趣的:(javascript学习记录-数组(6) 2014/02/23)