返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue中构造数组数据之map和forEach方法实现
  • 102
分享到

Vue中构造数组数据之map和forEach方法实现

2024-04-02 19:04:59 102人浏览 独家记忆
摘要

目录一、手写实现二、二者区别三、使用场景数组操作是前端最重要的数据操作,构造数组数据,又是数组操作中很常见的。本文将梳理下map和forEach方法在Vue项目中的使用。 想要深入理

数组操作是前端最重要的数据操作,构造数组数据,又是数组操作中很常见的。本文将梳理下map和forEach方法在Vue项目中的使用。

想要深入理解这两个方法,一定要手写几次简易的实现,理解其中的要义。这里只考虑核心部分,一些边界问题就忽略了。

一、手写实现

简易map方法:

Array.prototype.myMap = function(callback) {
    const res = [];
    for (let i = 0; i < this.length; i++) {
        // 这里将回调函数的执行结果push进了新数组,
        // 因此map方法在回调函数中一定要有return。
        res.push(callback(this[i], i, this));
}
    return res;
}

简易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++;
  }
};

二、二者区别

相同点:

1,都对数组的循环语句做了封装(while循环)。

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

3,两者都可以修改原数组,通过回调函数实现。当然两者的回调函数都可以不对原数组做修改。

4,在两个方法中使用return,只能结束当前这一次循环,不能结束整个循环,因为return是写在回调函数中的。

不同点:

1,map方法返回一个新数组;forEach方法返回undefined。

2,map可链式调用,forEach不可以。因为forEach总是返回undefined。

3,除了抛出异常,没有办法终止或跳出forEach循环。

三、使用场景

以下两种情况不要使用map方法。

1,不打算使用返回的新数组。

2,没有在回调函数中返回值。

举个Vue中的例子:

比如后台接口返回一个对象数据,我们需要将此对象数据构造成为一个新数组,展示到elementUi中的select下拉框中。那么我们应该用map方法呢,还是forEach呢?

let data = {
    product: '产品',
    service: '服务',
    micServide: '微服务',
}

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项目中,直接将res 换成给当前组件data中的数据赋值即可。
由以上例子可见,当我们需要构造一个新的数组时,两种方法都能用,但是map方法要更简洁。因此,能用map方法的地方,首先要用map方法。

到此这篇关于Vue中构造数组数据-map和forEach方法梳理的文章就介绍到这了,更多相关Vue构造数组数据内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Vue中构造数组数据之map和forEach方法实现

本文链接: https://lsjlt.com/news/168803.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Vue中构造数组数据之map和forEach方法实现
    目录一、手写实现二、二者区别三、使用场景数组操作是前端最重要的数据操作,构造数组数据,又是数组操作中很常见的。本文将梳理下map和forEach方法在Vue项目中的使用。 想要深入理...
    99+
    2024-04-02
  • vue中数组遍历方法forEach和map怎么用
    这篇文章给大家分享的是有关vue中数组遍历方法forEach和map怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、前言forEach和map是数组的两个方法,作用都是遍...
    99+
    2024-04-02
  • javascript学数组中的foreach方法和some方法
    目录一、foreach方法1直接vs打开2代码部分二、some方法1直接vs打开2代码部分3总结在我们的日常开发中 不免会有很多需要处理数据的方法 本节主要说一说foreach和so...
    99+
    2024-04-02
  • JavaScript中ES5如何实现数组map方法
    这篇文章将为大家详细讲解有关JavaScript中ES5如何实现数组map方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。ES5 实现数组 map 方法值得一提的是,map 的第二个参数为第一个参数回调...
    99+
    2023-06-27
  • javascript数组中的map方法和filter方法
    目录一、map方法1编辑器2代码部分3运行结果二、filter方法 1编辑器2代码3运行结果一、map方法 1编辑器 编辑器搞出来 一起研究研究数组中的map方法: 2代...
    99+
    2024-04-02
  • ES5如何实现数组map方法
    这篇文章给大家分享的是有关ES5如何实现数组map方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。ES5 实现数组 map 方法image值得一提的是,map 的第二个参数为第...
    99+
    2024-04-02
  • java数据结构中稀疏数组的实现方法
    这篇文章主要讲解了“java数据结构中稀疏数组的实现方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java数据结构中稀疏数组的实现方法”吧!目录稀疏数组:实现思路:举例:二维数组转稀疏数...
    99+
    2023-06-20
  • Array数组对象中的forEach、map、filter及reduce的参数介绍和用法
    本篇内容介绍了“Array数组对象中的forEach、map、filter及reduce的参数介绍和用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理...
    99+
    2024-04-02
  • JavaScript中如何使用reduce实现数组map方法
    这篇文章主要介绍了JavaScript中如何使用reduce实现数组map方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家...
    99+
    2024-04-02
  • ES5中实现数组map方法的示例分析
    这篇文章主要为大家展示了“ES5中实现数组map方法的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ES5中实现数组map方法的示例分析”这篇文章吧。 ES5 实现数组 map...
    99+
    2023-06-27
  • vue 当中组件之间共享数据的实现方式
    目录vue组件之间共享数据方式Vuex使用vuex统一管理状态的好处vuex 的基本使用vuex 中的主要核心概念stateMutationActionGettervue组件之间共享...
    99+
    2022-11-13
    vue组件 vue组件之间数据 vue共享数据
  • Golang函数的算法和数据结构实现方法
    作为一种相对较新的编程语言,Go语言(也通常称为Golang)已被越来越多的开发者所青睐。Golang的一大特点就是速度快,而这是得益于其高效的并发机制和出色的算法实现。在Golang中,函数是非常重要的概念,成为了程序员高效编写代码的关键...
    99+
    2023-05-17
    算法 Golang 数据结构
  • Vue父组件和子组件之间数据传递和方法调用
    vue组件在通信中,无论是子组件向父组件传值还是父组件向子组件传值,他们都有一个共同点就是有中间介质,子向父的介质是自定义事件,父向子的介质是props中的属性。 父组件向子组件传值...
    99+
    2022-12-14
    Vue 父组件向子组件传递数据 vue子组件向父组件传值
  • 带你了解Java数据结构和算法之数组
    目录1、Java数组介绍①、数组的声明②、访问数组元素以及给数组元素赋值③、数组遍历2、用类封装数组实现数据结构3、分析数组的局限性4、总结1、Java数组介绍 在Java中,数组是...
    99+
    2024-04-02
  • 从数组Reduce中构建Map等12个函数的方法教程
    这篇文章主要介绍“从数组Reduce中构建Map等12个函数的方法教程”,在日常操作中,相信很多人在从数组Reduce中构建Map等12个函数的方法教程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操...
    99+
    2024-04-02
  • Vue父组件和子组件之间数据传递和方法怎么调用
    本篇内容主要讲解“Vue父组件和子组件之间数据传递和方法怎么调用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue父组件和子组件之间数据传递和方法怎么调用”吧!vue组件在通信中,无论是子组件...
    99+
    2023-07-04
  • Java数据结构之稀疏数组的实现与应用
    目录1.稀疏数组引入1.1 使用场景1.2 稀疏数组简介2.稀疏数组的实现2.1 案例概述2.2 思路分析2.3 代码实现1.稀疏数组引入 1.1 使用场景 笔者在课程设计中曾写过一...
    99+
    2022-11-13
    Java 数据结构 稀疏数组 Java 稀疏数组
  • JS数组遍历中for,forin,forof,map,forEach各自的使用方法与优缺点
    JS数组遍历普通函数 优点:支持流程控制(break、continue、return) for const arr = ["A", "B", "C"] for(let i = 0;...
    99+
    2024-04-02
  • vue中的get方法\post方法如何实现传递数组参数
    目录get方法\post方法如何传递数组参数第一部分:vue中get方法如何传递数组参数 下面列出我的接口格式及解决方法的源码vue get与post传参方式1.post:...
    99+
    2024-04-02
  • C++实现拷贝构造函数的方法详解
    目录引入一.什么是拷贝构造函数二.什么情况下使用拷贝构造函数三.使用拷贝构造函数需要注意什么四.深拷贝浅拷贝4.1 浅拷贝4.2 深拷贝引入 对于普通类型的对象来说,他们之间的复制很...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作