iis服务器助手广告
返回顶部
首页 > 资讯 > 前端开发 > 其他 >分享JS的一些优雅写法(reduce/map)
  • 380
分享到

分享JS的一些优雅写法(reduce/map)

前端JavaScript 2023-05-14 22:05:41 380人浏览 独家记忆
摘要

本篇文章给大家带来了关于js的相关知识,其中主要给大家介绍了JS的一些优雅写法,感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。JS的一些优雅写法reduce1、可以使用 reduce 方法来实现对象数组中根据某一key值求和例如,假设有

本篇文章给大家带来了关于js的相关知识,其中主要给大家介绍了JS的一些优雅写法,感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。

分享JS的一些优雅写法(reduce/map)

JS的一些优雅写法

reduce

1、可以使用 reduce 方法来实现对象数组中根据某一key值求和

例如,假设有以下对象数组:

const arr = [
  { name: 'apple', price: 2 },
  { name: 'banana', price: 3 },
  { name: 'orange', price: 4 },
];

如果要根据price属性求和,可以使用以下代码:

const sum = arr.reduce((acc, cur) => acc + cur.price, 0);
console.log(sum); // 9

72f01be4547b69fc88e905304e86a88.png

其中,reduce方法的第一个参数是一个回调函数,它接收两个参数:累加器(acc)和当前元素(cur)。回调函数的返回值会作为下一次调用回调函数时的累加器的值。reduce方法的第二个参数是累加器的初始值,这里设置为0。

在回调函数中,我们将累加器和当前元素的price属性相加,最终得到了所有元素的price属性的总和。

map

1、可以使用map方法来实现对象数组中根据某一key值,取得另外一个key的值。

例如,假设有以下对象数组:

const arr = [
  { name: 'apple', price: 2 },
  { name: 'banana', price: 3 },
  { name: 'orange', price: 4 },
];

如果要根据name属性获取price属性,可以使用以下代码:

const prices = arr.map(item => item.name === 'banana' ? item.price : null);
console.log(prices); // [null, 3, null]

7c2c700d0548841f09b98a81c67eef3.png

其中,map方法的参数是一个回调函数,它接收一个参数:当前元素(item)。回调函数的返回值会作为新数组的元素。在回调函数中,我们判断当前元素的name属性是否等于'banana',如果是,则返回当前元素的price属性,否则返回null。最终得到了一个新数组,其中只有name属性为'banana'的元素的price属性有值,其他元素的price属性为null。

2、可以使用map方法来获取对象数组中根据某一key值得到的元素的price属性,可以使用find方法来实现。

例如,假设有以下对象数组:

const arr = [
  { name: 'apple', price: 2 },
  { name: 'banana', price: 3 },
  { name: 'orange', price: 4 },
];

如果要根据name属性获取price属性,可以使用以下代码:

const banana = arr.find(item => item.name === 'banana');if (banana) {
  console.log(banana.price); // 3}复制代码

e5437e021fcc9158d3c5cd78482af0d.png

其中,find方法的参数是一个回调函数,它接收一个参数:当前元素(item)。回调函数需要返回一个布尔值,表示当前元素是否符合条件。find方法会返回符合条件的第一个元素,如果没有符合条件的元素,则返回undefined。

在回调函数中,我们判断当前元素是否banana,如果是,则返回当前元素。最终得到了一个对象,其中只有name属性为'banana'的元素的price属性有值,其他元素price属性为undefined。我们可以使用if语句来判断是否找到了符合条件的元素,如果找到了,则输出它的price属性。

以上就是分享JS的一些优雅写法(reduce/map)的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: 分享JS的一些优雅写法(reduce/map)

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 分享JS的一些优雅写法(reduce/map)
    本篇文章给大家带来了关于JS的相关知识,其中主要给大家介绍了JS的一些优雅写法,感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。JS的一些优雅写法reduce1、可以使用 reduce 方法来实现对象数组中根据某一key值求和例如,假设有...
    99+
    2023-05-14
    前端 JavaScript
  • JS优雅的写法有哪些
    今天小编给大家分享一下JS优雅的写法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。JS的一些优雅写法reduce可以使...
    99+
    2023-07-05
  • Java状态机的一种优雅写法分享
    状态机是一种数学模型,对于我们业务实现有很大的帮助。 我们可以用非常多的方法实现状态机,比如用茫茫多的if-else来进行条件判断,但是这种原始的方法并不够优雅,这篇文章就来介绍一个...
    99+
    2023-05-15
    Java状态机写法 Java状态机
  • JS数组方法reduce的妙用分享
    目录1. 基本用法2. 使用技巧(1)数组求和(2)扁平数组(3)数组分组(4)使用 reduce() 代替 filter().map()(5)统计数组元素出现次数(6)串行执行异步...
    99+
    2023-02-01
    JS 数组方法reduce JS reduce使用 JS reduce
  • js利用reduce方法让你的代码更加优雅
    前言 在实际项目中,最常见可能是在计算、循环逻辑方面的处理,可以使用数组中reduce方法也可以解决很多的问题,使得你的代码风格更加优雅! reduce语法 arr.reduce(...
    99+
    2024-04-02
  • Python函数编编程的三大法宝map+filter+reduce分享
    目录一、mapmap 传入内置 Python 函数map 高级用法二、map 与列表推导式三、选择可迭代对象中的元素:filter四、合并可迭代对象中的元素: reduce五、总结众...
    99+
    2024-04-02
  • Python优雅的写法有哪些
    本篇内容介绍了“Python优雅的写法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!为多个变量赋值有时,有多个变量需要赋值,这时你会怎...
    99+
    2023-06-17
  • Redis优雅地实现延迟队列的方法分享
    目录前言使用依赖配置配置文件demo代码执行效果原理分析队列创建生产者消费者整个流程总结思考前言 工作中常常会遇到这样的场景,如订单到期未支付取消,到期自动续费等,我们发现延迟队列非常适合在这样的场景中使用。常见的延迟队...
    99+
    2023-02-26
    Redis实现延迟队列 Redis延迟队列
  • 一个Python优雅的数据分块方法详解
    目录1.背景2.islice2.1示例2.2只指定步长3.iter3.1常规使用3.2进阶使用4.islice 和 iter 组合使用5.总结1.背景 看到这个标题你可能想一个分块能...
    99+
    2024-04-02
  • 分享一些RxJava的特殊用法
    这篇文章给大家介绍分享一些RxJava的特殊用法,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、按钮绑定通过 RxView 可以对 view 进行快速的 clicks 绑定RxView.clicks(button)....
    99+
    2023-05-31
    rxjava ava
  • 分享一些不常见却很实用的JS技巧
    前言 编程语言通常暗藏着各种技巧,熟练使用这些技巧可以提高开发效率。JavaScript 就是一门技巧性很强的语言,掌握常见的语法技巧不但可以加深对语言特性的理解,还可以简化代码,提...
    99+
    2024-04-02
  • mysql乱码的一些解决方法分享
    本篇内容介绍了“mysql乱码的一些解决方法分享”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!新建了一个库...
    99+
    2024-04-02
  • 编写高质量JS变量的优秀做法有哪些
    本篇内容主要讲解“编写高质量JS变量的优秀做法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“编写高质量JS变量的优秀做法有哪些”吧!1.首选 const,...
    99+
    2024-04-02
  • 分享一些Web前端找实战经验的方法
    Web前端是一个非常热门的行业,近年来不断发展壮大。然而,对于正在学习Web前端的人来说,拥有实际的项目经验是非常重要的。因此,接下来我们将分享一些Web前端找实战经验的方法,帮助初学者更好地进行实践。1.贡献开源项目开源项目是一个非常好的...
    99+
    2023-05-14
  • 【整理分享】PHP字符串中一些处理中空格和符号的方法
    在PHP编程过程中,经常需要处理字符串中的空格和符号,例如在表单输入中去除用户输入的空格、在搜索引擎中处理搜索关键词、在生成URL中去除特殊字符等等。本文将介绍一些PHP中处理字符串中空格和符号的方法。一、去除空格1.使用trim...
    99+
    2023-05-14
    php php字符串
  • ajax对象一些常用属性和事件以及方法大小写比较常见的示例分析
    ajax对象一些常用属性和事件以及方法大小写比较常见的示例分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。最近比较空闲,于是抽个时间整理...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作