html函数参数数组遍历,数组的array.forEach()方法

forEach()是ECMAScript 5中对数组(Array)对象增加的实例方法,该方法会按数组索引的升序,为数组中每一项都执行一次给定的函数。相对于for…in循环,使用forEach()方法遍历数组元素更简单。

1. 语法结构

array.forEach(callback[, thisArg])

callback,要为数组的每一项执行的函数。该函数有以下三个参数:

currentValue,当前项的值,即:遍历时正在被处理的数组项

index,当前项的索引值(下标)

array,数组本身

thisArg,可选参数,用来当作callback函数内this值的对象。

forEach()方法会按升序为数组中的每一项执行一次callback函数。被执行的项只是有效项,已删除或者从未赋值的项将被跳过。

如果给forEach传递了thisArg参数,它将作为callback函数的执行上下文,其类似执行以下函数:

callback.call(thisArg, element, index, array)

如果thisArg值为 undefined或null,函数的this值取决于当前执行环境是否为严格模式:严格模式下为undefined、非严格模式下为全局对象。

2. forEach()与for…in循环

forEach()会按数组元素索引的升序为数据中的每一基执行callback函数,而for…in循环可以按升级或降序遍历数组中的元素。在按升序遍历数组时,二者在功能上比较类似,这时使用forEach()方法,代码更为简洁。

var arr = [2, 3, 7];

for(var i=0; i < arr.length; i++) {

console.log('a['+i+'] = '+ arr[i]);

}

// a[0] = 2

// a[1] = 3

// a[2] = 7

arr.forEach(function(v, i){

console.log('a['+i+'] = '+ v);

})

3. forEach()方法的使用

使用forEach()打印数组的内容:

function logArrayElements(element, index, array) {

console.log("a[" + index + "] = " + element);

}

[2, 5, 9].forEach(logArrayElements);

// a[0] = 2

// a[1] = 5

// a[2] = 9

使用forEach()实现对象方法:

function copy(o) {

var copy = Object.create(Object.getPrototypeOf(o));

var propNames = Object.getOwnPropertyNames(o);

propNames.forEach(function(name) {

var desc = Object.getOwnPropertyDescriptor(o, name);

Object.defineProperty(copy, name, desc);

});

return copy;

}

var o1 = { a: 1, b: 2 };

var o2 = copy(o1); // 从对象o1复制得到o2

上面示例中,使用Object.create()方法创建了新对象,并使用forEach()方法遍历原对象的属性将其复制到了新对象中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值