JavaScript中each map是很常見的循環(huán)方法,每一個(gè)都有著不同的用處。
在JS中,each和map的最大區(qū)別就是each方法只會(huì)執(zhí)行函數(shù),并不會(huì)返回新的數(shù)組,而map則會(huì)返回新的數(shù)組。我們可以用each方法來遍歷一個(gè)數(shù)組或?qū)ο螅缓髨?zhí)行函數(shù)對每個(gè)值進(jìn)行操作。而HTML和CSS中也同樣有這兩個(gè)方法,其實(shí)each方法在jQuery中也是很常見的。
比如下列代碼:
var numbers = [1, 2, 3, 4, 5]; $.each(numbers, function(index, value){ console.log("index: " + index + ", value: " + value); });這段代碼就是通過每個(gè)數(shù)組的值執(zhí)行console.log來顯示數(shù)組的下標(biāo)和值,如下:
index: 0, value: 1 index: 1, value: 2 index: 2, value: 3 index: 3, value: 4 index: 4, value: 5而當(dāng)我們想修改數(shù)組的值時(shí),就可以使用map方法。同樣是數(shù)組numbers既然我們想將其每個(gè)值都乘以2,我們就可以使用下列代碼:
var numbers = [1, 2, 3, 4, 5]; var newNumbers = $.map(numbers, function(value, index){ return value * 2; }); console.log(numbers); console.log(newNumbers);這段代碼就將數(shù)組的每個(gè)數(shù)值都乘以2并儲(chǔ)存在新的數(shù)組中,最終結(jié)果是這樣的:
[1, 2, 3, 4, 5] [2, 4, 6, 8, 10]此外,我們還可以將是對象作為參數(shù)傳入到each方法中:
var employee = {name: "John", job: "developer", age: 25}; $.each(employee, function(key, value){ console.log(key + ": " + value); });這段代碼可以輸出對象employee的每個(gè)鍵和值:
name: John job: developer age: 25jQuery中的map方法也類似于這種操作,同樣使用對象為參數(shù),如下:
var employee = {name: "John", job: "developer", age: 25}; var newEmployee = $.map(employee, function(value, key){ return key + ": " + value; }); console.log(employee); console.log(newEmployee);這段代碼將對象employee的鍵和值以字符串的形式儲(chǔ)存在一個(gè)新的數(shù)組中,結(jié)果如下:
{name: "John", job: "developer", age: 25} ["name: John", "job: developer", "age: 25"]總的來說,在代碼操作時(shí),我們可以通過each方法遍歷一個(gè)數(shù)組或?qū)ο螅褂胢ap方法則可以將其儲(chǔ)存到一個(gè)新的數(shù)組中。兩種方法都可以在不同的場景中得到很好的應(yīng)用,減少代碼的工作量,從而提高效率。