js學習一陣列型別foreach方法

EpisodeOne發表於2016-05-15

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



相關文章