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焦点与失去焦点示例应用
Jun 10 Javascript
JavaScript简单生成 N~M 之间随机数的方法
Jan 13 Javascript
基于angular实现三级联动的生日插件
May 12 Javascript
node.js + socket.io 实现点对点随机匹配聊天
Jun 30 Javascript
详解Vue SPA项目优化小记
Jul 03 Javascript
详解webpack编译速度提升之DllPlugin
Feb 05 Javascript
JS/jQuery实现简单的开关灯效果【案例】
Feb 19 jQuery
使用webpack搭建pixi.js开发环境
Feb 12 Javascript
javascript中的with语句学习笔记及用法
Feb 17 Javascript
微信浏览器左上角返回按钮监听的实现
Mar 04 Javascript
微信小程序实现自定义底部导航
Nov 18 Javascript
JavaScript实现点击切换验证码及校验
Jan 10 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学习 变量使用总结
2011/03/24 PHP
PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
2011/09/19 PHP
php eval函数一句话木马代码
2015/05/21 PHP
THinkPHP获取客户端IP与IP地址查询的方法
2016/11/14 PHP
PHP实现下载远程图片保存到本地的方法
2017/06/19 PHP
使用户点击后退按钮使效三行代码
2007/07/07 Javascript
jQuery-Tools-overlay 使用介绍
2012/07/14 Javascript
页面按钮禁用与解除禁用的方法
2014/02/19 Javascript
浅谈jquery点击label触发2次的问题
2016/06/12 Javascript
Bootstrap基本插件学习笔记之Alert警告框(20)
2016/12/08 Javascript
原生js实现节日时间倒计时功能
2017/01/18 Javascript
详解基于 Nuxt 的 Vue.js 服务端渲染实践
2017/10/24 Javascript
node全局变量__dirname与__filename的区别
2019/01/14 Javascript
在vue中使用G2图表的示例代码
2019/03/19 Javascript
jQuery实现飞机大战小游戏
2020/07/05 jQuery
[06:21]2014DOTA2国际邀请赛 庆祝VG首阶段领跑;B叔为挣牛排半夜整理情报
2014/07/13 DOTA
简单介绍Python的Django框架加载模版的方式
2015/07/20 Python
详解python中的time和datetime的常用方法
2019/07/08 Python
python函数不定长参数使用方法解析
2019/12/14 Python
python 发送get请求接口详解
2020/11/17 Python
python实现启动一个外部程序,并且不阻塞当前进程
2020/12/05 Python
美国著名的户外用品品牌:L.L.Bean
2018/01/05 全球购物
MyBag中文网:英国著名的时尚包袋电商零售网站
2020/07/31 全球购物
初中美术教学反思
2014/01/29 职场文书
总账会计岗位职责
2014/03/13 职场文书
政工例会汇报材料
2014/08/26 职场文书
医生个人自我剖析材料
2014/10/08 职场文书
学校党风廉政建设调研报告
2015/01/01 职场文书
培训通知书模板
2015/04/17 职场文书
活着观后感
2015/06/03 职场文书
正规欠条模板
2015/07/03 职场文书
2016年领导干部正风肃纪心得体会
2015/10/09 职场文书
写作指导:怎么书写竞聘演讲稿?
2019/07/04 职场文书
3050和2060哪个好 性能差多少 差距有多大 谁更有性价比
2022/06/17 数码科技
create-react-app开发常用配置教程
2022/06/25 Javascript
Python find()、rfind()方法及作用
2022/12/24 Python