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验证Checkbox是否选中的代码 推荐
Sep 04 Javascript
使用JavaScript的ActiveXObject对象检测应用程序是否安装的方法
Apr 15 Javascript
jquery查找tr td 示例模拟
May 08 Javascript
jQuery+ajax实现鼠标单击修改内容的思路
Jun 29 Javascript
浅谈JavaScript的事件
Feb 27 Javascript
JavaScript实现select添加option
Jul 03 Javascript
JS模态窗口返回值兼容问题的完美解决方法
May 28 Javascript
es6学习笔记之Async函数的使用示例
May 11 Javascript
vue中各选项及钩子函数执行顺序详解
Aug 25 Javascript
微信小程序动态显示项目倒计时
Jun 20 Javascript
vue组件库的在线主题编辑器的实现思路
Apr 03 Javascript
如何vue使用el-table遍历循环表头和表体数据
Apr 26 Vue.js
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+DBM的同学录程序(2)
2006/10/09 PHP
php函数的常用方法及注意之处小结
2011/07/10 PHP
php中将网址转换为超链接的函数
2011/09/02 PHP
PHP中对缓冲区的控制实现代码
2013/09/29 PHP
php去除字符串中空字符的常用方法小结
2015/03/17 PHP
php从数据库读取数据,并以json格式返回数据的方法
2018/08/21 PHP
PHP实现的微信APP支付功能示例【基于TP5框架】
2019/09/16 PHP
bgsound 背景音乐 的一些常用方法及特殊用法小结
2010/05/11 Javascript
JQuery index()方法使用代码
2010/06/02 Javascript
基于jquery跨浏览器显示的file上传控件
2011/10/24 Javascript
裁剪字符串trim()自定义改进版
2013/04/10 Javascript
当鼠标移动时出现特效的JQuery代码
2013/11/08 Javascript
javascript生成随机大小写字母的方法
2014/02/20 Javascript
分享使用AngularJS创建应用的5个框架
2015/12/05 Javascript
js实现精确到秒的日期选择器完整实例
2016/04/30 Javascript
js正则表达式replace替换变量方法
2016/05/21 Javascript
prototype.js常用函数详解
2016/06/18 Javascript
浅谈jQuery操作类数组的工具方法
2016/12/23 Javascript
AngularJS框架中的双向数据绑定机制详解【减少需要重复的开发代码量】
2017/01/19 Javascript
React 实现拖拽功能的示例代码
2019/01/06 Javascript
uni app仿微信顶部导航条功能
2019/09/17 Javascript
VSCode Vue开发推荐插件和VSCode快捷键(小结)
2020/08/08 Javascript
python实现批量获取指定文件夹下的所有文件的厂商信息
2014/09/28 Python
使用python验证代理ip是否可用的实现方法
2018/07/25 Python
详解Python对JSON中的特殊类型进行Encoder
2019/07/15 Python
这可能是最好玩的python GUI入门实例(推荐)
2019/07/19 Python
python字符串替换re.sub()方法解析
2019/09/18 Python
keras 指定程序在某块卡上训练实例
2020/06/22 Python
基于Python实现2种反转链表方法代码实例
2020/07/06 Python
英国床和浴室商场:Bed & Bath Emporium
2018/05/20 全球购物
抄作业检讨书
2014/02/17 职场文书
卫生系统先进事迹
2014/05/13 职场文书
文明城市创建标语
2014/06/16 职场文书
导师对论文的学术评语
2015/01/04 职场文书
社区志愿者服务心得体会
2016/01/22 职场文书
详解Spring Security中的HttpBasic登录验证模式
2022/03/17 Java/Android