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