牛骨文教育服务平台(让学习变的简单)
博文笔记

js学习一数组类型foreach方法

创建时间:2016-05-15 投稿人: 浏览次数:3859

Date:20160515

语法:

arr.foreach(callback [,thisArg])
callback 是指回调函数,thisArg是指传入的参数可有可无
代码示例如下:

实现的功能说明 给students数组中的每一个对象的score都加5分

<span style="font-size:14px;"><span style="font-size:14px;"><!DOCTYPE html>
<html>
<head>
	<title>JS_Array</title>
</head>
<body>
<script type="text/javascript">
	var students = [
	{id:1, score:10},
	{id:2, score:20},
	{id:3, score:30}
	];
	var editScore = function(item, index,array){
		item.score += 5;
	};
	students.forEach(editScore);
	// document.write(students.length);
	document.write(students[0].score);
</script>
</body>
</html></span></span>
运行结果:

15

array常用方法的补充:


改变原数组的方法:
reverse(arr) 逆序
sort(arr) 排序
push(element)) 结尾追加
unshift(element) 头部追加 
arr.shift() 空参数,删除原来数组的第一元素,并返回删除以后的第一个元素
arr.pop() 同上,删除最后一个元素,并取出最后一个
arr.splice(index, howManty[, ele1[,.......eleN]]) 在索引位置为index的地方插入ele1......eleN,并删掉howMany个元素(替换功能)。如果没有ele就是删除操作;如果howMany = 0就是插入操作


不改变原数组的方法
arr.slice(begin[,end]) begin<=index<end 取数组的一部分,拷贝
arr.concat(value1,......valueN) 连接多个数组
arr.join([separator])用指定的字符或者默认为‘,’将数组里的元素连接起来
arr.map(callback[,thisArg]) 是forEach操作的具体化

示例:

var scores = [1,2,3,4,5];
var addScore = function(item, index, array){
	return item += 5;
}
document.write(scores.map(addScore))
	// 6,7,8,9,10
arr.reduce(callback[,initialValue]) 前一次执行callback函数的结果和作为参数继续执行callback,直至数组执行结束

示例:

var sum = function (preResult, item, index, array) {
	return preResult + item.score;
}
document.write(students.reduce(sum, 0))
// 60 执行过程:0+10=10,10+20=30,30+30=60

总结:对一个数组(每项都是数值)求和的方法有: for forin forEach map reduce



声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。