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 实现两级导航菜单附效果图
Mar 07 Javascript
动态加载iframe时get请求传递中文参数乱码解决方法
May 07 Javascript
ie 7/8不支持trim的属性的解决方案
May 23 Javascript
JS数组交集、并集、差集的示例代码
Aug 23 Javascript
js处理包含中文的字符串实例
Oct 11 Javascript
浅谈Vue2.0中v-for迭代语法的变化(key、index)
Mar 06 Javascript
jQuery使用动画队列自定义动画操作示例
Jun 16 jQuery
JS如何获取地址栏的参数实例讲解
Oct 06 Javascript
vue elementui form表单验证的实现
Nov 11 Javascript
angular6根据environments配置文件更改开发所需要的环境的方法
Mar 06 Javascript
安装多版本Vue-CLI的实现方法
Mar 24 Javascript
vue下canvas裁剪图片实例讲解
Apr 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
无数据库的详细域名查询程序PHP版(3)
2006/10/09 PHP
简单谈谈PHP面向对象之标识对象
2017/06/27 PHP
php 多个变量指向同一个引用($b = &$a)用法分析
2019/11/13 PHP
Javascript的一种模块模式
2010/09/08 Javascript
php对mongodb的扩展(初识如故)
2012/11/11 Javascript
使用jQuery.fn自定义jQuery翻页插件
2013/01/20 Javascript
jquery indexOf使用方法
2013/08/19 Javascript
JS如何将UTC格式时间转本地格式
2013/09/04 Javascript
node.js应用后台守护进程管理器Forever安装和使用实例
2014/06/01 Javascript
js计算德州扑克牌面值的方法
2015/03/04 Javascript
javascript图片预加载实例分析
2015/07/16 Javascript
javascript 的变量、作用域和内存问题
2017/04/19 Javascript
js实现图片粘贴到网页
2019/12/06 Javascript
Vue设置长时间未操作登录自动到期返回登录页
2020/01/22 Javascript
详解Vue Cli浏览器兼容性实践
2020/06/08 Javascript
vuejs element table 表格添加行,修改,单独删除行,批量删除行操作
2020/07/18 Javascript
[56:14]Fnatic vs OG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python实现简单的四则运算计算器
2016/11/02 Python
用Python3创建httpServer的简单方法
2018/06/04 Python
在python中利用KNN实现对iris进行分类的方法
2018/12/11 Python
详解Python的循环结构知识点
2019/05/20 Python
Python爬取智联招聘数据分析师岗位相关信息的方法
2019/08/13 Python
Django集成celery发送异步邮件实例
2019/12/17 Python
Pandas时间序列:重采样及频率转换方式
2019/12/26 Python
Python 找出出现次数超过数组长度一半的元素实例
2020/05/11 Python
Python pandas如何向excel添加数据
2020/05/22 Python
tensorflow使用L2 regularization正则化修正overfitting过拟合方式
2020/05/22 Python
计算机开发个人求职信范文
2013/09/26 职场文书
计算机专业推荐信范文
2013/11/20 职场文书
支教自我鉴定
2014/01/18 职场文书
公司端午节活动方案
2014/02/04 职场文书
市场营销工作计划书
2014/05/06 职场文书
学校标语大全
2014/06/19 职场文书
大一工商管理职业生涯规划:有梦最美,行动相随
2014/09/18 职场文书
群众路线教育实践活动剖析材料
2014/09/30 职场文书
社区党务工作总结2015
2015/05/19 职场文书