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面向对象编程(一) 实例代码
Jun 25 Javascript
Javascript的各种节点操作实例演示代码
Jun 27 Javascript
js数组Array sort方法使用深入分析
Feb 21 Javascript
JS正则表达式获取分组内容的方法详解
Nov 15 Javascript
jquery复选框checkbox实现删除前判断
Apr 20 Javascript
JavaScript常用的返回,自动跳转,刷新,关闭语句汇总
Jan 13 Javascript
js判断手机和pc端选择不同执行事件的方法
Jan 30 Javascript
深入探究AngularJS框架中Scope对象的超级教程
Jan 04 Javascript
JavaScript实现类似拉勾网的鼠标移入移出效果
Oct 27 Javascript
JS实现区分中英文并统计字符个数的方法示例
Jun 09 Javascript
微信小程序如何获取地址
Dec 24 Javascript
JS highcharts实现动态曲线代码示例
Oct 16 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
phpfans留言版用到的install.php
2007/01/04 PHP
php设计模式之单例模式实例分析
2015/02/25 PHP
PHP模板引擎Smarty内建函数详解
2016/04/11 PHP
Yii安装与使用Excel扩展的方法
2016/07/13 PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
2016/09/11 PHP
jQuery html() in Firefox (uses .innerHTML) ignores DOM changes
2010/03/05 Javascript
Web开发之JavaScript
2012/03/29 Javascript
基于NodeJS的前后端分离的思考与实践(四)安全问题解决方案
2014/09/26 NodeJs
JavaScript获取Url里的参数
2014/12/18 Javascript
使用jquery提交form表单并自定义action的实现代码
2016/05/25 Javascript
浅析JSONP技术原理及实现
2016/06/08 Javascript
性能优化之代码优化页面加载速度
2017/03/01 Javascript
使用JavaScriptCore实现OC和JS交互详解
2017/03/28 Javascript
jQuery插件FusionCharts绘制的2D帕累托图效果示例【附demo源码】
2017/03/28 jQuery
手写Node静态资源服务器的实现方法
2018/03/20 Javascript
vue中$refs的用法及作用详解
2018/04/24 Javascript
JS立即执行函数功能与用法分析
2019/01/15 Javascript
jsonp跨域获取百度联想词的方法分析
2019/05/13 Javascript
js实现无刷新监听URL的变化示例代码详解
2020/06/03 Javascript
Python上下文管理器和with块详解
2017/09/09 Python
python3实现随机数
2018/06/25 Python
Python实现识别图片内容的方法分析
2018/07/11 Python
python 利用for循环 保存多个图像或者文件的实例
2018/11/09 Python
利用Django模版生成树状结构实例代码
2019/05/19 Python
python多进程 主进程和子进程间共享和不共享全局变量实例
2020/04/25 Python
Python模拟登入的N种方式(建议收藏)
2020/05/31 Python
Python 下载Bing壁纸的示例
2020/09/29 Python
详解快速开发基于 HTML5 网络拓扑图应用
2018/01/08 HTML / CSS
环境工程大学生自荐信
2013/10/21 职场文书
物业管理应届生求职信
2013/10/28 职场文书
单位门卫岗位职责
2013/12/20 职场文书
清扬洗发水广告词
2014/03/14 职场文书
表彰会主持词
2014/03/26 职场文书
超市开业庆典策划方案
2014/05/14 职场文书
《三国志》赏析
2019/08/27 职场文书
创业计划书之川味火锅店
2019/09/02 职场文书