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对象的property和prototype是什么一种关系
Aug 06 Javascript
js中的前绑定和后绑定详解
Aug 01 Javascript
让复选框只能选择一项的方法
Oct 08 Javascript
Jquery 监视按键,按下回车键触发某方法的实现代码
May 11 Javascript
JS+CSS实现大气清新的滑动菜单效果代码
Oct 22 Javascript
基于jQuery的AJAX和JSON实现纯html数据模板
Aug 09 Javascript
深入理解React中es6创建组件this的方法
Aug 29 Javascript
javascript实现延时显示提示框效果
Jun 01 Javascript
详解AngularJS2 Http服务
Jun 26 Javascript
layer弹出层全屏及关闭方法
Aug 17 Javascript
es6中reduce的基本使用方法
Sep 10 Javascript
JavaScript async/await原理及实例解析
Dec 02 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
虫族 Zerg 热键控制
2020/03/14 星际争霸
[原创]PHPCMS遭遇会员投稿审核无效的解决方法
2017/01/11 PHP
详谈phpAdmin修改密码后拒绝访问的问题
2017/04/03 PHP
PHP的curl函数的用法总结
2019/02/14 PHP
Alliance vs AM BO3 第一场2.13
2021/03/10 DOTA
javascript 当前日期加(天、周、月、年)
2009/08/09 Javascript
一个可绑定数据源的jQuery数据表格插件
2010/07/17 Javascript
js加减乘除丢失精度问题解决方法
2014/05/16 Javascript
JavaScript实现文字跟随鼠标特效
2015/08/06 Javascript
BOM系列第二篇之定时器requestAnimationFrame
2016/08/17 Javascript
JS对HTML表格进行增删改操作
2016/08/22 Javascript
jQuery中slidedown与slideup方法用法示例
2016/09/16 Javascript
JS仿京东移动端手指拨动切换轮播图效果
2020/04/10 Javascript
Bootstrap Search Suggest使用例子
2016/12/21 Javascript
如何提高数据访问速度
2016/12/26 Javascript
详解vue数据渲染出现闪烁问题
2017/06/29 Javascript
Vue自定义事件(详解)
2017/08/19 Javascript
Vue仿手机qq的实例代码(demo)
2017/09/08 Javascript
极简主义法编写JavaScript类
2017/11/02 Javascript
微信小程序使用modal组件弹出对话框功能示例
2017/11/29 Javascript
JS设计模式之观察者模式实现实时改变页面中金额数的方法
2018/02/05 Javascript
Vue+Jwt+SpringBoot+Ldap完成登录认证的示例代码
2018/05/21 Javascript
Swiper.js实现移动端元素左右滑动
2019/09/08 Javascript
layui table 复选框跳页后再回来保持原来选中的状态示例
2019/10/26 Javascript
Vue替代marquee标签超出宽度文字横向滚动效果
2019/12/09 Javascript
jquery实现图片无缝滚动 蒙版遮蔽效果
2020/01/11 jQuery
js调用网络摄像头的方法
2020/12/05 Javascript
Python正则表达式介绍
2012/08/06 Python
利用python3随机生成中文字符的实现方法
2017/11/24 Python
TensorFlow实现卷积神经网络CNN
2018/03/09 Python
Python全排列操作实例分析
2018/07/24 Python
python3实现简单飞机大战
2020/11/29 Python
Nobody Denim官网:购买高级女士牛仔裤
2021/03/15 全球购物
小学班主任个人总结
2015/03/03 职场文书
健康证明
2015/06/19 职场文书
SpringBoot项目多数据源及mybatis 驼峰失效的问题解决方法
2022/07/07 Java/Android