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 相关文章推荐
Angularjs制作简单的路由功能demo
Apr 14 Javascript
javascript中一些util方法汇总
Jun 10 Javascript
JavaScript的jQuery库中function的存在和参数问题
Aug 13 Javascript
JavaScript实现将数组数据添加到Select下拉框的方法
Aug 21 Javascript
laypage分页控件使用实例详解
May 19 Javascript
关于jQuery EasyUI 中刷新Tab选项卡后一个页面变形的解决方法
Mar 02 Javascript
Vue中的验证登录状态的实现方法
Mar 09 Javascript
vue项目中自定义video视频控制条的实现代码
Apr 26 Javascript
详解vue3.0 diff算法的使用(超详细)
Jul 01 Javascript
如何构建 vue-ssr 项目的方法步骤
Aug 04 Javascript
vuex Module将 store 分割成模块的操作
Dec 07 Vue.js
使用PDF.js渲染canvas实现预览pdf的效果示例
Apr 17 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实现框架(二)
2006/10/09 PHP
我的论坛源代码(一)
2006/10/09 PHP
在PHP中读取和写入WORD文档的代码
2008/04/09 PHP
Session保存到数据库的php类分享
2011/10/24 PHP
mysql 查询指定日期时间内sql语句实现原理与代码
2012/12/16 PHP
PHP实现获取图片颜色值的方法
2014/07/11 PHP
JQuery 操作select标签实现代码
2010/05/14 Javascript
TypeScript具有的几个不同特质
2015/04/07 Javascript
window.open打开窗口被拦截的快速解决方法
2016/08/04 Javascript
node安装--linux下的快速安装教程
2017/03/21 Javascript
详解webpack分离css单独打包
2017/06/21 Javascript
react-native组件中NavigatorIOS和ListView结合使用的方法
2017/09/30 Javascript
Angular 中使用 FineReport不显示报表直接打印预览
2019/08/21 Javascript
layui--js控制switch的切换方法
2019/09/03 Javascript
js实现随机抽奖
2020/03/19 Javascript
vue 内联样式style中的background用法说明
2020/08/05 Javascript
pycharm 使用心得(二)设置字体大小
2014/06/05 Python
Python性能提升之延迟初始化
2016/12/04 Python
详解Python多线程Selenium跨浏览器测试
2017/04/01 Python
Python搜索引擎实现原理和方法
2017/11/27 Python
python-opencv 将连续图片写成视频格式的方法
2019/01/08 Python
对IPython交互模式下的退出方法详解
2019/02/16 Python
PyQt5 实现给窗口设置背景图片的方法
2019/06/13 Python
django用户登录验证的完整示例代码
2019/07/21 Python
Python在后台自动解压各种压缩文件的实现方法
2020/11/10 Python
澳大利亚拥有最好的家具和家居用品在线目的地:Nestz
2019/02/23 全球购物
村委会贫困证明
2014/01/14 职场文书
代理协议书
2014/04/22 职场文书
高中竞选班长演讲稿
2014/04/24 职场文书
组工干部对照检查材料
2014/08/25 职场文书
实施意见格式范本
2015/06/05 职场文书
公司借款担保书
2015/09/22 职场文书
又涨知识了,自律到底多重要?
2019/06/27 职场文书
诗词赏析-(浣溪沙)
2019/08/13 职场文书
创业计划书之面包店
2019/09/12 职场文书
PostGIS的安装与入门使用指南
2022/01/18 PostgreSQL