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 相关文章推荐
网页自动刷新,不产生嗒嗒声的一个解决方法
Mar 27 Javascript
jquery.cvtooltip.js 基于jquery的气泡提示插件
Nov 19 Javascript
编写针对IE的JS代码两种编写方法
Jan 30 Javascript
animate动画示例(泪奔的小孩)及stop和delay的使用
May 06 Javascript
div失去焦点事件实现思路
Apr 22 Javascript
百度地图API之本地搜索与范围搜索
Jul 30 Javascript
JavaScript之Canvas_动力节点Java学院整理
Jul 04 Javascript
详解使用Vue Router导航钩子与Vuex来实现后退状态保存
Sep 11 Javascript
javaScript手机号码校验工具类PhoneUtils详解
Dec 08 Javascript
vue-router源码之history类的浅析
May 21 Javascript
简单了解小程序+node梳理登陆流程
Jun 24 Javascript
微信小程序开发(二):页面跳转并传参操作示例
Jun 01 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通过文件头检测文件类型通用代码类(zip,rar等)
2010/10/19 PHP
php中通过Ajax如何实现异步文件上传的代码实例
2011/05/07 PHP
php中利用explode函数分割字符串到数组
2014/02/08 PHP
PHP比较运算符的详细介绍
2015/09/29 PHP
PHP的AES加密算法完整实例
2016/07/20 PHP
php使用strip_tags()去除html标签仍有空白的解决方法
2016/07/28 PHP
对php 判断http还是https,以及获得当前url的方法详解
2019/01/15 PHP
分享14个很酷的jQuery导航菜单插件
2011/04/25 Javascript
javascript实现动态侧边栏代码
2014/02/19 Javascript
javascript/jquery获取地址栏url参数的方法
2014/03/05 Javascript
在其他地方你学不到的jQuery小贴士和技巧(欢迎收藏)
2016/01/20 Javascript
javascript实现表单验证
2016/01/29 Javascript
简单的jQuery banner图片轮播实例代码
2016/03/04 Javascript
js实现常用排序算法
2016/08/09 Javascript
AngularJs 国际化(I18n/L10n)详解
2016/09/01 Javascript
JS常用算法实现代码
2016/11/14 Javascript
微信小程序使用image组件显示图片的方法【附源码下载】
2017/12/08 Javascript
jQuery事件绑定和解绑、事件冒泡与阻止事件冒泡及弹出应用示例
2019/05/13 jQuery
react中hook介绍以及使用教程
2020/12/11 Javascript
linux平台使用Python制作BT种子并获取BT种子信息的方法
2017/01/20 Python
Python打印“菱形”星号代码方法
2018/02/05 Python
selenium+python实现自动化登录的方法
2018/09/04 Python
python的常见矩阵运算(小结)
2019/08/07 Python
Django 对IP访问频率进行限制的例子
2019/08/30 Python
解决Python列表字符不区分大小写的问题
2019/12/19 Python
Python实现序列化及csv文件读取
2020/01/19 Python
django实现HttpResponse返回json数据为中文
2020/03/27 Python
pytorch中的weight-initilzation用法
2020/06/24 Python
vscode配置anaconda3的方法步骤
2020/08/08 Python
稀有和绝版书籍:Biblio.com
2017/02/02 全球购物
Java如何支持I18N?
2016/10/31 面试题
应届大学生求职的自我评价
2013/11/17 职场文书
党的群众路线教育实践活动个人对照检查材料
2014/09/22 职场文书
2014年生产部工作总结
2014/12/17 职场文书
PHP中->和=>的意思
2021/03/31 PHP