最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue中構(gòu)造數(shù)組數(shù)據(jù)之map和forEach方法實(shí)現(xiàn)

 更新時(shí)間:2022年09月30日 15:56:18   作者:推開世界的門  
數(shù)組操作是前端最重要的數(shù)據(jù)操作,構(gòu)造數(shù)組數(shù)據(jù),又是數(shù)組操作中很常見的,本文將梳理下map和forEach方法在Vue項(xiàng)目中的使用,感興趣的朋友跟隨小編一起看看吧

數(shù)組操作是前端最重要的數(shù)據(jù)操作,構(gòu)造數(shù)組數(shù)據(jù),又是數(shù)組操作中很常見的。本文將梳理下map和forEach方法在Vue項(xiàng)目中的使用。

想要深入理解這兩個(gè)方法,一定要手寫幾次簡(jiǎn)易的實(shí)現(xiàn),理解其中的要義。這里只考慮核心部分,一些邊界問題就忽略了。

一、手寫實(shí)現(xiàn)

簡(jiǎn)易map方法:

Array.prototype.myMap = function(callback) {
    const res = [];
    for (let i = 0; i < this.length; i++) {
        // 這里將回調(diào)函數(shù)的執(zhí)行結(jié)果push進(jìn)了新數(shù)組,
        // 因此map方法在回調(diào)函數(shù)中一定要有return。
        res.push(callback(this[i], i, this));
}
    return res;
}

簡(jiǎn)易forEach方法:

Array.prototype.myForEach = function (fn, context) {
  context = context || arguments[1];
  let len = this.length;
  let k = 0;
  while (k < len) {
    if (k in this) {
      fn.call(context, this[k], k, this);
    };
    k++;
  }
};

二、二者區(qū)別

相同點(diǎn):

1,都對(duì)數(shù)組的循環(huán)語句做了封裝(while循環(huán))。

2,map能做的事,forEach也能做,反之亦然。

3,兩者都可以修改原數(shù)組,通過回調(diào)函數(shù)實(shí)現(xiàn)。當(dāng)然兩者的回調(diào)函數(shù)都可以不對(duì)原數(shù)組做修改。

4,在兩個(gè)方法中使用return,只能結(jié)束當(dāng)前這一次循環(huán),不能結(jié)束整個(gè)循環(huán),因?yàn)閞eturn是寫在回調(diào)函數(shù)中的。

不同點(diǎn):

1,map方法返回一個(gè)新數(shù)組;forEach方法返回undefined。

2,map可鏈?zhǔn)秸{(diào)用,forEach不可以。因?yàn)閒orEach總是返回undefined。

3,除了拋出異常,沒有辦法終止或跳出forEach循環(huán)。

三、使用場(chǎng)景

以下兩種情況不要使用map方法。

1,不打算使用返回的新數(shù)組。

2,沒有在回調(diào)函數(shù)中返回值。

舉個(gè)Vue中的例子:

比如后臺(tái)接口返回一個(gè)對(duì)象數(shù)據(jù),我們需要將此對(duì)象數(shù)據(jù)構(gòu)造成為一個(gè)新數(shù)組,展示到elementUi中的select下拉框中。那么我們應(yīng)該用map方法呢,還是forEach呢?

let data = {
    product: '產(chǎn)品',
    service: '服務(wù)',
    micServide: '微服務(wù)',
}

let keysArr = Object.keys(data)

// 用forEach方法

let res = []
keysArr .forEach(item => {
    res.push( { value: item, label: data[item] } )
})

// 用map方法

let res1 = data.map(item => {
    return { value: item, label:  }
})

// 在Vue項(xiàng)目中,直接將res 換成給當(dāng)前組件data中的數(shù)據(jù)賦值即可。
由以上例子可見,當(dāng)我們需要構(gòu)造一個(gè)新的數(shù)組時(shí),兩種方法都能用,但是map方法要更簡(jiǎn)潔。因此,能用map方法的地方,首先要用map方法。

到此這篇關(guān)于Vue中構(gòu)造數(shù)組數(shù)據(jù)-map和forEach方法梳理的文章就介紹到這了,更多相關(guān)Vue構(gòu)造數(shù)組數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于vue實(shí)現(xiàn)多功能樹形結(jié)構(gòu)組件的示例代碼

    基于vue實(shí)現(xiàn)多功能樹形結(jié)構(gòu)組件的示例代碼

    一個(gè)優(yōu)雅展示樹形結(jié)構(gòu)數(shù)據(jù)的 Vue 組件,遞歸渲染每個(gè)節(jié)點(diǎn)及其子節(jié)點(diǎn),支持自定義顏色、文本和布局,通過獨(dú)特的樣式巧妙處理不同層級(jí),為用戶打造豐富的視覺盛宴,文中通過代碼給大家介紹的非常詳細(xì),感興趣的同學(xué)可以自己動(dòng)手嘗試一下
    2024-02-02
  • vite構(gòu)建vue3項(xiàng)目的全過程記錄

    vite構(gòu)建vue3項(xiàng)目的全過程記錄

    vite是VUE3創(chuàng)建項(xiàng)目的工具,項(xiàng)目大了之后,性能明顯優(yōu)于webpack,下面這篇文章主要給大家介紹了關(guān)于vite構(gòu)建vue3項(xiàng)目的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • vue+web端仿微信網(wǎng)頁版聊天室功能

    vue+web端仿微信網(wǎng)頁版聊天室功能

    這篇文章主要介紹了vue+web端仿微信網(wǎng)頁版聊天室功能,非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-04-04
  • Vue中的 DOM與Diff詳情

    Vue中的 DOM與Diff詳情

    這篇文章主要介紹了Vue中的 DOM與Diff詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)有所幫助
    2022-08-08
  • vue項(xiàng)目打包部署到服務(wù)器的方法示例

    vue項(xiàng)目打包部署到服務(wù)器的方法示例

    這篇文章主要介紹了vue項(xiàng)目打包部署到服務(wù)器的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-08-08
  • vue搜索頁開發(fā)實(shí)例代碼詳解(熱門搜索,歷史搜索,淘寶接口演示)

    vue搜索頁開發(fā)實(shí)例代碼詳解(熱門搜索,歷史搜索,淘寶接口演示)

    這篇文章主要介紹了vue搜索頁開發(fā)實(shí)例(熱門搜索,歷史搜索,淘寶接口演示),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Vue基于iview table展示圖片實(shí)現(xiàn)點(diǎn)擊放大

    Vue基于iview table展示圖片實(shí)現(xiàn)點(diǎn)擊放大

    這篇文章主要介紹了Vue基于iview table展示圖片實(shí)現(xiàn)點(diǎn)擊放大,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Vue項(xiàng)目中如何運(yùn)用vuex的實(shí)戰(zhàn)記錄

    Vue項(xiàng)目中如何運(yùn)用vuex的實(shí)戰(zhàn)記錄

    如果說是JQuery是手工作坊,那么Vue.js就像是一座工廠,雖然Vue.js做的任何事情JQuery都可以做,但無論是代碼量還是流程規(guī)范性都是前者較優(yōu),下面這篇文章主要給大家介紹了關(guān)于Vue項(xiàng)目中如何運(yùn)用vuex的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • vue3+vite加載本地js/json文件不能使用require淺析

    vue3+vite加載本地js/json文件不能使用require淺析

    這篇文章主要給大家介紹了關(guān)于vue3+vite加載本地js/json文件不能使用require的相關(guān)資料,require 是屬于 Webpack 的方法,在v3+vite的項(xiàng)目里面并不適用,需要的朋友可以參考下
    2023-07-07
  • Vue兩種組件類型:遞歸組件和動(dòng)態(tài)組件的用法

    Vue兩種組件類型:遞歸組件和動(dòng)態(tài)組件的用法

    這篇文章主要介紹了Vue兩種組件類型:遞歸組件和動(dòng)態(tài)組件的用法說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08

最新評(píng)論

大名县| 铁岭县| 大埔县| 雅安市| 垦利县| 无锡市| 嘉黎县| 娄烦县| 东海县| 五峰| 阳谷县| 深水埗区| 阿城市| 东至县| 西平县| 栖霞市| 伊通| 靖边县| 鹤庆县| 茂名市| 茶陵县| 封开县| 廊坊市| 区。| 鄢陵县| 策勒县| 寻乌县| 赤峰市| 台东县| 宜阳县| 长子县| 通化市| 渝中区| 凤凰县| 河津市| 梁山县| 龙里县| 静海县| 泰和县| 瓦房店市| 贵溪市|