JavaScript中如何進行數(shù)組處理

這篇文章給大家分享的是有關(guān)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ù)” 并將結(jié)果作為新數(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 );

輸出結(jié)果如下

JavaScript中如何進行數(shù)組處理

在該示例中,對于數(shù)值“1到5”的數(shù)組用回調(diào)函數(shù)執(zhí)行對每個元素進行加倍的處理。

出于這個原因,我們分配一個數(shù)組,其結(jié)果翻2倍作為“result ”的返回值,因此可以看到輸出結(jié)果都變成了其本身的2倍。

最初,它都是使用for語句或while語句編寫循環(huán),但使用map非常方便,因為它可以通過一個非常簡單的程序來實現(xiàn)!

在JavaScript中還有一個與map()方法用法類似的reduce()方法,關(guān)于reduce()方法可以參考這篇文章:JavaScript中的reduce如何使用

關(guān)于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 );
});

輸出結(jié)果是一樣的都為

JavaScript中如何進行數(shù)組處理

正如您在此示例中看到的,forEach和map獲得的結(jié)果是相同的。

那么,它們有什么不同,最大一點的不同就是是否具有返回值。

換句話說,forEach只是一種執(zhí)行方法,而map在執(zhí)行后將結(jié)果作為數(shù)組數(shù)據(jù)返回。

我們具體看示例

forEach:

var result = [1,2,3].forEach(function( value ) {
 
    return value * 2;
 
});
 
console.log( result );

輸出結(jié)果如下為:

JavaScript中如何進行數(shù)組處理

forEach的返回值看不到。

map:

var result = [1,2,3].map(function( value ) {
 
    return value * 2;
 
});
 
console.log( result );

輸出結(jié)果為

JavaScript中如何進行數(shù)組處理

可以將數(shù)組數(shù)據(jù)作為執(zhí)行結(jié)果返回。

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 );

輸出結(jié)果如下

JavaScript中如何進行數(shù)組處理

此外,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 );

輸出結(jié)果如下

JavaScript中如何進行數(shù)組處理

在過去,“回調(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 );

我們從對象中指定任意關(guān)鍵字并返回“price”。

var foodList = {
  '蘋果': 45,
  '哈密瓜': 50,
  '獼猴桃': 60,
  '草莓': 40
};
var order = ['草莓', '獼猴桃'];
var result = order.map( function( value, index, array ) {
    return this[value];
 
}, foodList );
console.log( result );

輸出結(jié)果如下

JavaScript中如何進行數(shù)組處理

在此示例中,您可以看到關(guān)鍵字在數(shù)組order中設置,從中獲取與對象中擁有的關(guān)鍵字匹配的“price”并將其作為數(shù)組返回。

感謝各位的閱讀!關(guān)于JavaScript中如何進行數(shù)組處理就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

網(wǎng)頁標題:JavaScript中如何進行數(shù)組處理
URL鏈接:http://bm7419.com/article22/pcdicc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、網(wǎng)頁設計公司、企業(yè)建站、定制開發(fā)、移動網(wǎng)站建設、關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設