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 相关文章推荐
IE与FireFox的兼容性问题分析
Apr 22 Javascript
javaScript checkbox 全选/反选及批量删除
Apr 28 Javascript
使用jQuery判断Div是否在可视区域的方法 判断div是否可见
Feb 17 Javascript
浅析javaScript中的浅拷贝和深拷贝
Feb 15 Javascript
ES6新特性之Symbol类型用法分析
Mar 31 Javascript
基于JS实现限时抢购倒计时间表代码
May 09 Javascript
详解webpack3如何正确引用并使用jQuery库
Aug 26 jQuery
详解React Native开源时间日期选择器组件(react-native-datetime)
Sep 13 Javascript
浅谈vue的iview列表table render函数设置DOM属性值的方法
Sep 30 Javascript
微信小程序实时聊天WebSocket
Jul 05 Javascript
使用p5.js临摹动态图形
Oct 23 Javascript
js canvas实现俄罗斯方块
Oct 11 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
上海永华YH-R296(华普R-96)12波段立体声收音机的分析和打理
2021/03/02 无线电
PHP实现防盗链的方法分析
2017/07/25 PHP
PHP添加文字水印或图片水印的水印类完整源代码与使用示例
2019/03/18 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
javascript或asp实现的判断身份证号码是否正确两种验证方法
2009/11/26 Javascript
JQuery在光标位置插入内容的实现代码
2010/06/18 Javascript
Js基础学习资料
2010/11/23 Javascript
JQUERY对单选框(radio)操作的小例子
2013/04/25 Javascript
JavaScript实现同步于本地时间的动态时间显示方法
2015/02/02 Javascript
jQuery中的pushStack实现原理和应用实例
2015/02/03 Javascript
Javascript中click与blur事件的顺序详析
2017/04/25 Javascript
微信小程序 wx:for的使用实例详解
2017/04/27 Javascript
jQuery手风琴的简单制作
2017/05/12 jQuery
Vue-cli 使用json server在本地模拟请求数据的示例代码
2017/11/02 Javascript
JavaScript callback回调函数用法实例分析
2018/05/08 Javascript
JavaScript数组常用的增删改查与其他属性详解
2020/10/13 Javascript
Python的垃圾回收机制深入分析
2014/07/16 Python
Python入门_浅谈逻辑判断与运算符
2017/05/16 Python
Python爬虫番外篇之Cookie和Session详解
2017/12/27 Python
Python OpenCV实现图片上输出中文
2018/01/22 Python
利用numpy和pandas处理csv文件中的时间方法
2018/04/19 Python
Python3多线程操作简单示例
2018/05/22 Python
Python ORM框架Peewee用法详解
2020/04/29 Python
Python新手学习标准库模块命名
2020/05/29 Python
Python Dict找出value大于某值或key大于某值的所有项方式
2020/06/05 Python
html5 postMessage解决跨域、跨窗口消息传递方案
2016/12/20 HTML / CSS
澳大利亚免息网上购物:Shop Zero
2016/09/17 全球购物
EGO Shoes美国/加拿大:英国时髦鞋类品牌
2018/08/04 全球购物
建筑设计学生的自我评价
2014/01/16 职场文书
食品采购员岗位职责
2014/04/14 职场文书
行政人事专员岗位职责
2015/04/07 职场文书
2015年乡镇卫生院妇幼保健工作总结
2015/05/19 职场文书
党员心得体会范文2016
2016/01/23 职场文书
Pytorch DataLoader shuffle验证方式
2021/06/02 Python
试了下Golang实现try catch的方法
2021/07/01 Golang
MySQL普通表如何转换成分区表
2022/05/30 MySQL