這篇文章給大家分享的是有關JavaScript中如何進行數(shù)組處理的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。
恩陽ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!
首先我們來看一下map()的基本語法
var array = [ 數(shù)組數(shù)據(jù) ]; array.map(回調(diào)函數(shù));
Map是用于數(shù)組數(shù)據(jù)的方法,可以為每個元素執(zhí)行“回調(diào)函數(shù)” 并將結果作為新數(shù)組返回。
換句話說,通過在此函數(shù)中編寫要執(zhí)行的進程,您可以對數(shù)組的每個元素執(zhí)行任何操作!
如何使用map方法迭代數(shù)組?
以下示例是對包含數(shù)字數(shù)據(jù)的數(shù)組使用map方法的示例
var items = [1,2,3,4,5]; var result = items.map(function( value ) { return value * 2; }); console.log( result );
輸出結果如下
在該示例中,對于數(shù)值“1到5”的數(shù)組用回調(diào)函數(shù)執(zhí)行對每個元素進行加倍的處理。
出于這個原因,我們分配一個數(shù)組,其結果翻2倍作為“result ”的返回值,因此可以看到輸出結果都變成了其本身的2倍。
最初,它都是使用for語句或while語句編寫循環(huán),但使用map非常方便,因為它可以通過一個非常簡單的程序來實現(xiàn)!
在JavaScript中還有一個與map()方法用法類似的reduce()方法,關于reduce()方法可以參考這篇文章:JavaScript中的reduce如何使用
關于reduce()和map()方法的區(qū)別可以參考這篇文章:JavaScript中map()和reduce()有什么區(qū)別
map()與forEach語句的區(qū)別?
map()類似于forEach語句,它可以以相同的方式操作數(shù)組。
我們來看具體的示例
//forEach [1,2,3].forEach(function( value ) { console.log( value ); }); //map [1,2,3].map(function( value ) { console.log( value ); });
輸出結果是一樣的都為
正如您在此示例中看到的,forEach和map獲得的結果是相同的。
那么,它們有什么不同,最大一點的不同就是是否具有返回值。
換句話說,forEach只是一種執(zhí)行方法,而map在執(zhí)行后將結果作為數(shù)組數(shù)據(jù)返回。
我們具體看示例
forEach:
var result = [1,2,3].forEach(function( value ) { return value * 2; }); console.log( result );
輸出結果如下為:
forEach的返回值看不到。
map:
var result = [1,2,3].map(function( value ) { return value * 2; }); console.log( result );
輸出結果為
可以將數(shù)組數(shù)據(jù)作為執(zhí)行結果返回。
map的回調(diào)函數(shù)
之前我們看回調(diào)函數(shù)只有一個參數(shù),但實際上你可以用得到有三個參數(shù)!
數(shù)組數(shù)據(jù).map( function( value, index, array ) { });
Value是數(shù)組的值
index是數(shù)組的索引號
array是當前正在處理的數(shù)組
例如,在下面的示例中,我們將使用參數(shù)index,將index號的值為偶數(shù)的值翻倍
var items = [1,2,3,4,5,6,7,8,9]; var result = items.map( function( value, index, array ) { if( index % 2 !== 0 ) { return value * 2; } else { return value; } }); console.log( result );
輸出結果如下
此外,map具有不對原始數(shù)組數(shù)據(jù)進行任何更改的功能,但如果使用第三個參數(shù)array ,則還可以更改原始數(shù)據(jù)!
var items = [1,2,3,4,5,6,7,8,9]; items.map( function( value, index, array ) { array[index] = value * 2; }); console.log( items );
輸出結果如下
在過去,“回調(diào)函數(shù)”被指定為“map”的第一個參數(shù),但實際上你可以指定任意“對象”作為第二個參數(shù)!
var array = [ 數(shù)組數(shù)據(jù) ]; //指定對象為第2個參數(shù) array.map( 回調(diào)函數(shù), 對象 );
這使得可以組合指定的數(shù)組和對象以實現(xiàn)更方便的編程。
例如,在下面的示例中,將食物簡單對象foodList指定為map的第二個參數(shù)。
var foodList = { '蘋果': 45, '哈密瓜': 50, '獼猴桃': 60, '草莓': 40 }; 數(shù)組.map( function( value ) { }, foodList );
我們從對象中指定任意關鍵字并返回“price”。
var foodList = { '蘋果': 45, '哈密瓜': 50, '獼猴桃': 60, '草莓': 40 }; var order = ['草莓', '獼猴桃']; var result = order.map( function( value, index, array ) { return this[value]; }, foodList ); console.log( result );
輸出結果如下
在此示例中,您可以看到關鍵字在數(shù)組order中設置,從中獲取與對象中擁有的關鍵字匹配的“price”并將其作為數(shù)組返回。
感謝各位的閱讀!關于JavaScript中如何進行數(shù)組處理就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!