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获取特定name所有选中的checkbox,支持IE9标准模式
Mar 18 Javascript
自定义的一个简单时尚js下拉选择框
Nov 20 Javascript
JS实现网页标题栏显示当前时间和日期的完整代码
Nov 02 Javascript
整理Javascript数组学习笔记
Nov 29 Javascript
基于JavaScript代码实现pc与手机之间的跳转
Dec 23 Javascript
js去字符串前后空格的实现方法
Feb 26 Javascript
基于jquery实现简单的分页控件
Mar 17 Javascript
jQuery插件扩展extend的简单实现原理
Jun 24 Javascript
详解angular中如何监控dom渲染完毕
Jan 03 Javascript
jquery封装插件时匿名函数形参和实参的写法解释
Feb 14 Javascript
JavaScript检测浏览器是否支持CSS变量代码实例
Apr 03 Javascript
javascript实现贪吃蛇小游戏
Jul 28 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
第八节--访问方式
2006/11/16 PHP
PHP URL参数获取方式的四种例子
2014/02/28 PHP
php使用curl简单抓取远程url的方法
2015/03/13 PHP
javascript xml为数据源的下拉框控件
2009/07/07 Javascript
JavaScript中奇葩的假值示例应用
2014/03/11 Javascript
js实现千分符和保留几位小数的简单实例
2016/08/01 Javascript
BOM系列第三篇之定时器应用(时钟、倒计时、秒表和闹钟)
2016/08/17 Javascript
详解Vue中过度动画效果应用
2017/05/25 Javascript
详解angularjs 关于ui-router分层使用
2017/06/12 Javascript
解决React Native端口号修改的方法
2017/07/28 Javascript
基于Vuex无法观察到值变化的解决方法
2018/03/01 Javascript
解决vue2中使用axios http请求出现的问题
2018/03/05 Javascript
nuxt框架中对vuex进行模块化设置的实现方法
2019/09/06 Javascript
使用layer模态框给新页面传值的方法
2019/09/27 Javascript
Vue v-model组件封装(类似弹窗组件)
2020/01/08 Javascript
jQuery+Ajax+js实现请求json格式数据并渲染到html页面操作示例
2020/06/02 jQuery
[02:43]DOTA2英雄基础教程 半人马战行者
2014/01/13 DOTA
[01:01:52]完美世界DOTA2联赛PWL S2 GXR vs Magma 第二场 11.25
2020/11/26 DOTA
[01:07:57]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第二场 1月19日
2021/03/11 DOTA
python自动发邮件库yagmail的示例代码
2018/02/23 Python
python字典的setdefault的巧妙用法
2019/08/07 Python
python将dict中的unicode打印成中文实例
2020/05/11 Python
Python 执行矩阵与线性代数运算
2020/08/01 Python
Numpy(Pandas)删除全为零的列的方法
2020/09/11 Python
Python实现区域填充的示例代码
2021/02/03 Python
鲜为人知的HTML5语音合成功能
2019/05/17 HTML / CSS
html5教程制作简单画板代码分享
2013/12/04 HTML / CSS
BNKR中国官网:带你感受澳洲领先潮流时尚
2018/08/21 全球购物
Carolina Lemke Berlin澳大利亚官网:时尚太阳镜品牌
2019/09/17 全球购物
数据库基础的一些面试题
2012/02/25 面试题
客户接待方案
2014/02/26 职场文书
分公司负责人任命书
2014/06/04 职场文书
2015年学校总务工作总结
2015/07/20 职场文书
2016年小学“公民道德宣传日”活动总结
2016/04/01 职场文书
SQL之各种join小结详细讲解
2021/08/04 MySQL
MySQL的意向共享锁、意向排它锁和死锁
2022/07/15 MySQL