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 相关文章推荐
javascript 打开页面window.location和window.open的区别
Mar 17 Javascript
javascript 密码强度验证规则、打分、验证(给出前端代码,后端代码可根据强度规则翻译)
May 18 Javascript
JS中引用百度地图并将百度地图的logo和信息去掉
Sep 29 Javascript
jquery 取子节点及当前节点属性值
Jul 25 Javascript
程序员必知35个jQuery 代码片段
Nov 05 Javascript
jquery对复选框(checkbox)的操作汇总
Jan 13 Javascript
javascript检查某个元素在数组中的索引值
Mar 30 Javascript
jquery的父、子、兄弟节点查找,节点的子节点循环方法
Dec 07 Javascript
原生js实现可爱糖果数字时间特效
Dec 30 Javascript
JS实现的判断方法、变量是否存在功能示例
Mar 28 Javascript
Node.js创建一个Express服务的方法详解
Jan 06 Javascript
浅谈vue-props的default写不写有什么区别
Aug 09 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
深入浅析PHP7.0新特征(五大新特征)
2015/10/29 PHP
JS创建优美的页面滑动块效果 - Glider.js
2007/09/27 Javascript
JQuery 学习笔记 选择器之六
2009/07/23 Javascript
JavaScript打开word文档的实现代码(c#)
2012/04/16 Javascript
Js实现手机发送验证码时按钮延迟操作
2014/06/20 Javascript
JavaScript中九种常用排序算法
2014/09/02 Javascript
jquery插件treegrid树状表格的使用方法详解(.Net平台)
2017/01/03 Javascript
快速掌握jQuery插件开发
2017/01/19 Javascript
js实现鼠标跟随运动效果
2020/08/02 Javascript
利用vue + koa2 + mockjs模拟数据的方法教程
2017/11/22 Javascript
浅谈webpack打包之后的文件过大的解决方法
2018/03/07 Javascript
Vue-cli3.X使用px2 rem遇到的问题及解决方法
2019/08/08 Javascript
浅谈vue限制文本框输入数字的正确姿势
2019/09/02 Javascript
微信小程序点击滚动到指定位置的实现
2020/05/22 Javascript
vue实现div单选多选功能
2020/07/16 Javascript
js实现石头剪刀布游戏
2020/10/11 Javascript
[19:14]DOTA2 HEROS教学视频教你分分钟做大人-维萨吉
2014/06/24 DOTA
paramiko模块安装和使用(远程登录服务器)
2014/01/27 Python
python实现随机密码字典生成器示例
2014/04/09 Python
Python解释执行原理分析
2014/08/22 Python
Python常用的内置序列结构(列表、元组、字典)学习笔记
2016/07/08 Python
详解Python pygame安装过程笔记
2017/06/05 Python
Python 3.x读写csv文件中数字的方法示例
2017/08/29 Python
对python3 一组数值的归一化处理方法详解
2018/07/11 Python
pandas取出重复数据的方法
2019/07/04 Python
python垃圾回收机制(GC)原理解析
2019/12/30 Python
Keras 实现加载预训练模型并冻结网络的层
2020/06/15 Python
使用Python-OpenCV消除图像中孤立的小区域操作
2020/07/05 Python
Python爬虫与反爬虫大战
2020/07/30 Python
官方授权图形T恤和服装:Fifth Sun
2019/06/12 全球购物
招聘与培训专员岗位职责
2014/01/30 职场文书
逃课上网检讨书
2014/02/20 职场文书
政治学专业毕业生求职信
2014/08/11 职场文书
后进生评语大全
2015/01/04 职场文书
2015年“我们的节日·中秋节”活动总结
2015/07/30 职场文书
《索溪峪的野》教学反思
2016/02/19 职场文书