這篇文章給大家分享的是有關JavaScript中如何進行數組處理的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。
首先我們來看一下map()的基本語法
var array = [ 數組數據 ]; array.map(回調函數);
Map是用于數組數據的方法,可以為每個元素執行“回調函數” 并將結果作為新數組返回。
換句話說,通過在此函數中編寫要執行的進程,您可以對數組的每個元素執行任何操作!
如何使用map方法迭代數組?
以下示例是對包含數字數據的數組使用map方法的示例
var items = [1,2,3,4,5];
var result = items.map(function( value ) {
return value * 2;
});
console.log( result );輸出結果如下

在該示例中,對于數值“1到5”的數組用回調函數執行對每個元素進行加倍的處理。
出于這個原因,我們分配一個數組,其結果翻2倍作為“result ”的返回值,因此可以看到輸出結果都變成了其本身的2倍。
最初,它都是使用for語句或while語句編寫循環,但使用map非常方便,因為它可以通過一個非常簡單的程序來實現!
在JavaScript中還有一個與map()方法用法類似的reduce()方法,關于reduce()方法可以參考這篇文章:JavaScript中的reduce如何使用
關于reduce()和map()方法的區別可以參考這篇文章:JavaScript中map()和reduce()有什么區別
map()與forEach語句的區別?
map()類似于forEach語句,它可以以相同的方式操作數組。
我們來看具體的示例
//forEach
[1,2,3].forEach(function( value ) {
console.log( value );
});
//map
[1,2,3].map(function( value ) {
console.log( value );
});輸出結果是一樣的都為

正如您在此示例中看到的,forEach和map獲得的結果是相同的。
那么,它們有什么不同,最大一點的不同就是是否具有返回值。
換句話說,forEach只是一種執行方法,而map在執行后將結果作為數組數據返回。
我們具體看示例
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 );輸出結果為

可以將數組數據作為執行結果返回。
map的回調函數
之前我們看回調函數只有一個參數,但實際上你可以用得到有三個參數!
數組數據.map( function( value, index, array ) {
});Value是數組的值
index是數組的索引號
array是當前正在處理的數組
例如,在下面的示例中,我們將使用參數index,將index號的值為偶數的值翻倍
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具有不對原始數組數據進行任何更改的功能,但如果使用第三個參數array ,則還可以更改原始數據!
var items = [1,2,3,4,5,6,7,8,9];
items.map( function( value, index, array ) {
array[index] = value * 2;
});
console.log( items );輸出結果如下

在過去,“回調函數”被指定為“map”的第一個參數,但實際上你可以指定任意“對象”作為第二個參數!
var array = [ 數組數據 ]; //指定對象為第2個參數 array.map( 回調函數, 對象 );
這使得可以組合指定的數組和對象以實現更方便的編程。
例如,在下面的示例中,將食物簡單對象foodList指定為map的第二個參數。
var foodList = {
'蘋果': 45,
'哈密瓜': 50,
'獼猴桃': 60,
'草莓': 40
};
數組.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 );輸出結果如下

在此示例中,您可以看到關鍵字在數組order中設置,從中獲取與對象中擁有的關鍵字匹配的“price”并將其作為數組返回。
感謝各位的閱讀!關于JavaScript中如何進行數組處理就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。