ES6小技巧之代替lodash


Posted in Javascript onJune 07, 2019

Javascript ES6标准实行后,Lodash或者Ramada中的一些功能我们就不需要了,可以使用ES6的语法来实现

获取Object中指定键值

我们现在可以使用解包的方法快速获取对象中指定键值的值

const obj = {
 a:1,
 b:2,
 c:3,
 d:4
};

// 获取obj中a与b的值
const {a,b} = obj;

// 也可以给他们取别名
const {a:A, b:B} = obj;

这个小技巧非常的方便,也是最基础的使用方法

排除Object中不需要的键值

既然我们可以获取到想要的对象键值,那么也可以排除掉不想要的键值,使用方法就要用到ES6的rest新特性

const obj = {
 a:1,
 b:2,
 c:3,
 d:4
}

// 我们想要获取除了a之外的所有属性
const {a, ...other} = obj

我们只要指定那些排除掉的属性,剩下的就是需要的属性,这样可以非常快速的排除不需要的属性

对象快速求和

有时候我们需要对一组对象数组中的某一个属性求总和,以前我们可以使用forEach或者for这样的循环遍历的方法来计算,现在我们可以使用reduce方法来快速实现

const objs = [
{name:'lilei', score: 98},
{name:'hanmeimei', score: 95},
{name:'polo', score: 85},
...
]

const scoreTotal = objs.reduce( (total, obj) => {
 return obj.score + total;
}, 0 /*第二个参数是total的初始值*/)

使用reduce就能快速的实现对某一个属性的总和计算

map也能异步遍历

是不是觉得只有for能够进行异步操作不方便,其实map也能进行异步操作,不过需要结合Promise的新方法一起使用

const arr = [1,2,3,4,...]

const queue = arr.map(async item => {
 return item + 1;
})

Promise.all(queue).then(newArr => console.log(newArr))

这样一来我们在map中也能使用异步操作了

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
使用jQuery的将桌面应用程序引入浏览器
Nov 19 Javascript
JavaScript之引用类型介绍
Aug 10 Javascript
jQuery中fadeOut()方法用法实例
Dec 24 Javascript
JS实现带有3D立体感的银灰色竖排折叠菜单代码
Oct 20 Javascript
js判断手机浏览器操作系统和微信浏览器的方法
Apr 30 Javascript
前端性能优化及技巧
May 06 Javascript
完美的js div拖拽实例代码
Sep 24 Javascript
Bootstrap免费字体和图标网站(值得收藏)
Mar 16 Javascript
Vue结合SignalR实现前后端实时消息同步
Sep 19 Javascript
Koa2微信公众号开发之消息管理
May 16 Javascript
vue.js 实现点击展开收起动画效果
Jul 07 Javascript
如何利用js在两个html窗口间通信
Apr 27 Javascript
vue+element 模态框表格形式的可编辑表单实现
Jun 07 #Javascript
vue-cli3项目展示本地Markdown文件的方法
Jun 07 #Javascript
Element实现表格分页数据选择+全选所有完善批量操作
Jun 07 #Javascript
详解vue项目中实现图片裁剪功能
Jun 07 #Javascript
sortable+element 实现表格行拖拽的方法示例
Jun 07 #Javascript
利用Vue-draggable组件实现Vue项目中表格内容的拖拽排序
Jun 07 #Javascript
Vue中实现权限控制的方法示例
Jun 07 #Javascript
You might like
PHP GD 图像处理组件的常用函数总结
2010/04/28 PHP
php处理restful请求的路由类分享
2014/02/27 PHP
PHP 如何获取二维数组中某个key的集合
2014/06/03 PHP
php 5.6版本中编写一个PHP扩展的简单示例
2015/01/20 PHP
JavaScript CSS修改学习第三章 修改样式表
2010/02/19 Javascript
Jquery获取元素的父容器对象示例代码
2014/02/10 Javascript
js控制容器隐藏出现防止样式变化的两种方法
2014/04/25 Javascript
js实现鼠标移到链接文字弹出一个提示层的方法
2015/05/11 Javascript
JavaScript 模块的循环加载实现方法
2015/12/13 Javascript
Vuejs第六篇之Vuejs与form元素实例解析
2016/09/05 Javascript
基于jQuery实现Tabs选项卡自定义插件
2016/11/21 Javascript
详解Vue2 无限级分类(添加,删除,修改)
2017/03/07 Javascript
koa2+vue实现登陆及登录状态判断
2019/08/15 Javascript
vue 使用class创建和清除水印的示例代码
2020/12/25 Vue.js
[01:10:16]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第一局
2016/02/27 DOTA
跟老齐学Python之让人欢喜让人忧的迭代
2014/10/02 Python
跟老齐学Python之大话题小函数(2)
2014/10/10 Python
Pyhton中防止SQL注入的方法
2015/02/05 Python
Python对list列表结构中的值进行去重的方法总结
2016/05/07 Python
Python金融数据可视化汇总
2017/11/17 Python
python基础知识(一)变量与简单数据类型详解
2019/04/17 Python
10 行Python 代码实现 AI 目标检测技术【推荐】
2019/06/14 Python
Ubuntu18.04下python版本完美切换的解决方法
2019/06/14 Python
PyQt5 QTable插入图片并动态更新的实例
2019/06/18 Python
Pandas之排序函数sort_values()的实现
2019/07/09 Python
Python之数据序列化(json、pickle、shelve)详解
2019/08/30 Python
Python调用OpenCV实现图像平滑代码实例
2020/06/19 Python
pytorch 限制GPU使用效率详解(计算效率)
2020/06/27 Python
Python日志打印里logging.getLogger源码分析详解
2021/01/17 Python
Html5内唤醒百度、高德APP的实现示例
2019/05/20 HTML / CSS
HTML 5 标签、属性、事件及浏览器兼容性速查表 附打包下载
2012/10/20 HTML / CSS
大学本科毕业生的自我鉴定范文
2013/11/19 职场文书
精彩的推荐信范文
2013/11/26 职场文书
伊琍体标语
2014/06/25 职场文书
群众路线教育实践活动剖析材料
2014/09/30 职场文书
企业反腐倡廉心得体会
2015/08/15 职场文书