這篇文章將為大家詳細講解有關ecmascript 5中數(shù)組的map()方法怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
網(wǎng)站建設哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、微信小程序開發(fā)、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了元寶山免費建站歡迎大家使用!
在ecmascript中,map()方法可以對數(shù)組的每個元素調(diào)用指定的回調(diào)函數(shù)進行處理,并返回包含結果的數(shù)組;語法“array.map(function(currentValue,index,arr), thisValue)”。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
map()方法可以對數(shù)組的每個元素調(diào)用指定的回調(diào)函數(shù)進行處理,并返回包含結果的數(shù)組。
map() 方法按照原始數(shù)組元素順序依次處理元素。
語法
array.map(function(currentValue,index,arr), thisValue)
參數(shù) | 描述 |
---|---|
function(currentValue, index,arr) | 必須。函數(shù),數(shù)組中的每個元素都會執(zhí)行這個函數(shù)。 函數(shù)參數(shù):
|
thisValue | 可選。對象作為該執(zhí)行回調(diào)時使用,傳遞給函數(shù),用作 "this" 的值。 如果省略了 thisValue,或者傳入 null、undefined,那么回調(diào)函數(shù)的 this 為全局對象。 |
map() 方法將返回一個新數(shù)組,其中每個元素均為關聯(lián)的原始數(shù)組元素的回調(diào)函數(shù)返回值。對于數(shù)組中的每個元素,map() 方法都會調(diào)用 callbackfn 函數(shù)一次(采用升序索引順序),并不會為數(shù)組中缺少的元素調(diào)用回調(diào)函數(shù)。
除了數(shù)組對象之外,map() 方法可由具有 length 屬性,且具有已按編制索引的屬性名的任何對象使用,如 Arguments 參數(shù)對象。
map() 方法不直接修改原始數(shù)組,但回調(diào)函數(shù)可能會修改它。在 map 方法啟動后修改數(shù)組對象所獲得的結果說明如表所示。
map 方法啟動后的條件 | 元素是否傳遞給回調(diào)函數(shù) |
---|---|
在數(shù)組的原始長度之外添加元素 | 否 |
添加元素以填充數(shù)組中缺少的元素 | 是,如果該索引尚未傳遞給回調(diào)函數(shù) |
元素已更改 | 是,如果該元素尚未傳遞給回調(diào)函數(shù) |
從數(shù)組中刪除元素 | 否,除非該元素已傳遞給回調(diào)函數(shù) |
示例1
下面示例使用 map() 方法映射數(shù)組,把數(shù)組中每個元素的值平方,乘以 PI 值,把返回的圓的面積值作為新數(shù)組的元素值,最后返回這個新數(shù)組。
function f (radius) { var area = Math.PI * (radius * radius); return area.toFixed(0); } var a = [10,20,30]; var a1 = a.map(f); console.log(a1);
示例2
下面示例使用 map() 方法映射數(shù)組,把數(shù)組中每個元素的值除以一個閾值,然后返回這個新數(shù)組其中回調(diào)函數(shù)和閾值都以對象的屬性存在,通過這種方法演示如何在 map 中使用 thisArg 參數(shù)。
var obj = { val : 10, f : function (value) { return value % this.val; } } var a = [6,12,25,30]; var a1 = a.map(obj.f, obj); console.log(a1); //6,2,5,0
示例3
下面示例演示如何使用 JavaScript 內(nèi)置方法作為回調(diào)函數(shù)。
var a = [9, 16]; var a1 = a.map(Math.sqrt); console.log(a1); //3,4
示例4
下面示例演示如何使用 map 方法應用于一個類數(shù)組。在示例中通過動態(tài)調(diào)用的方法(Call)把 map 作用于一個字符串上,則 map 將遍歷字符串中每個字符,并調(diào)用回調(diào)函數(shù) threeChars,把每個字符左右 3 個字符截取出來,映射到一個新數(shù)組中。
function f (value, index, str) { return str.substring(index - 1, index + 2); } var s = "Thursday"; var a = [].map.call(s, f); console.log(a); //Th,Thu,hur,urs,rsd,sda,day,ay
關于“ecmascript 5中數(shù)組的map()方法怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。