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 相关文章推荐
一些不错的js函数ajax
Aug 20 Javascript
Jquery插件写法笔记整理
Sep 06 Javascript
Javascript操作cookie的函数代码
Oct 03 Javascript
jQuery点击tr实现checkbox选中的方法
Mar 19 Javascript
js点击选择文本的方法
Feb 09 Javascript
JS实现随机乱撞彩色圆球特效的方法
May 05 Javascript
JavaScript实现图片自动加载的瀑布流效果
Apr 11 Javascript
javascript 网页进度条简单实例
Feb 22 Javascript
js图片延迟加载(Lazyload)三种实现方式
Mar 01 Javascript
JS简单判断滚动条的滚动方向实现方法
Apr 28 Javascript
深入理解Angular4订阅(Subscribe)与取消
Nov 22 Javascript
Koa日志中间件封装开发详解
Mar 09 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伪静态Rewrite设置之APACHE篇
2014/07/30 PHP
php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
2019/05/09 PHP
Alliance vs AM BO3 第二场2.13
2021/03/10 DOTA
javascript 中对象的继承〔转贴〕
2007/01/22 Javascript
javascript面向对象包装类Class封装类库剖析
2013/01/24 Javascript
Jquery中CSS选择器用法分析
2015/02/10 Javascript
javascript类型系统 Window对象学习笔记
2016/01/07 Javascript
用JS动态改变表单form里的action值属性的两种方法
2016/05/25 Javascript
arcgis for js 修改infowindow样式的方法
2016/11/02 Javascript
vue.js+Element实现表格里的增删改查
2017/01/18 Javascript
Angular4如何自定义首屏的加载动画详解
2017/07/26 Javascript
Three.js利用性能插件stats实现性能监听的方法
2017/09/25 Javascript
JavaScript多态与封装实例分析
2018/07/27 Javascript
Vue动态生成el-checkbox点击无法赋值的解决方法
2019/02/21 Javascript
npm 语义版本控制详解
2019/09/10 Javascript
vue组件 keep-alive 和 transition 使用详解
2019/10/11 Javascript
vue中使用腾讯云Im的示例
2020/10/23 Javascript
python操作数据库之sqlite3打开数据库、删除、修改示例
2014/03/13 Python
python实现挑选出来100以内的质数
2015/03/24 Python
python3将视频流保存为本地视频文件
2018/06/20 Python
Python中sorted()排序与字母大小写的问题
2020/01/14 Python
PyQt5 文本输入框自动补全QLineEdit的实现示例
2020/05/13 Python
浅析Python 多行匹配模式
2020/07/24 Python
通过代码实例解析Pytest运行流程
2020/08/20 Python
澳大利亚购买最佳炊具品牌网站:Cookware Brands
2019/02/16 全球购物
德国家用电器购物网站:Premiumshop24
2019/08/22 全球购物
英国森林假期:Forest Holidays
2021/01/01 全球购物
C#面试常见问题
2013/02/25 面试题
房屋改造计划书
2014/01/10 职场文书
一年级家长会邀请函
2014/01/25 职场文书
环保倡议书400字
2014/05/15 职场文书
道路运输企业安全生产责任书
2014/07/28 职场文书
公司授权委托书范本
2014/09/18 职场文书
秋季校运会广播稿100字
2014/09/18 职场文书
2016个人廉洁自律承诺书
2016/03/25 职场文书
如何基于python实现单目三维重建详解
2022/06/25 Python