【ES6基础】es6中新键加入的方法及代码(一)

这个系列文章的几篇推文的链接在这:

第四篇 扩展运算符与箭头函数

第三篇 promise

第二篇 filter、includes、fill、object.assign

第一篇 set、map


前言

es6是js语言下的下一代标准,使得js语言可以用来编写复杂的大型应用程序,成为企业级的开发语言。


提示:以下是本篇文章正文内容,下面案例可供参考

一、聊聊es6中的新的方法

  • Set

  • map

  • filter

  • includes

  • fill

  • object.assign


二、set

1.set介绍

set在es6中被叫做集合,set经常被用来检查对象中是否存在某个键名,它是有序列表,它类似于数组的结构但是不能像数组一样通过下标进行取值,因为其键名和键值是同一个,相比Array来说,两者都是一个储存多值的容器,两者可以相互转换,两者部分区别在:

setArray
索引查找has (效率更高)indexof
删除delete(更加方便)splice
添加addpush、unshift、splice

2.set作用

2.1 set去重

set被用作数组去重,具体代码:
(1)普通去重



返回的Arrary即是去重后的数组
Array.prototype.unique=function(){
const set =new Set(this);
return Array.from(set);

(2)对象去重


var o={a:1}
var b = [...new Set([o, o, 3, 4, 5, 5, 5, 5])]
console.log(b)

在这里插入图片描述
(3)对象去重的相同地址去不了重


var b = [...new Set([{'a':1}, {'a':1}, 3, 4, 5, 5, 5, 5])]
console.log(b)

在这里插入图片描述
(4)字符串去重

[...new Set('ababbc')].join('')
// "abc"

2.2 set取交集与并集

交集intersection

//交集intersection
set.intersection(x,y)
x={'a','b','c'}
y={'a'.'d'.'e'}
console,log(set.intersection(x,y))
//{'a'}

并集difference

x={'a','b','c'}
y={'a','d','e'}
console.log(x.difference(y))
#输出
{'b', 'c'}

2.3 set在vue中

受es5的限制,vue在初始化时将属性转换为getter/setter,所以属性必须在data对象上才能让vue.js转换它,才能让它是响应的,处理这种情况,我们则使用到了$set方法,既可以新增属性,又可以改变视图更新。

mounted(){
this.$set(this.student.'age',24)
}

三、map

1.map介绍

map是一组键值对的结构,具有极快的查找速度,举个列子,倘若需要根据名字查找分数,如果根据数组的话,则需要一个数组用来装名字,另一个用来装分数,而map就能方便许多,代码如下:

var m = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]);
m.get('Michael'); // 95

2.map用法

初始化map需要新建一个二维数组或者直接初始化一空Map,Map具有以下方法:

var m=new Map();//创建一个新的空map
m.set('aa',67)//添加新的键值对
m.has('Bob')//是否存在键名Bob,返回true
m.get('Bob')//返回其键值75
m.delete('Bob')//删除这个

3.map与object的区别

(1)object中只有string和symbol可以作为key值,而map中可以用任何基本类型作为key值

(2)map可以通过size获得其长度,而object则需要其他方法。

(3)Map对象实例中数据的排序是根据用户push的顺序进行排序的, 而Object实例中key,value的顺序就是有些规律了, (他们会先排数字开头的key值,然后才是字符串开头的key值)

4.map与reduce的区别

  • map和reduce函数均是接受两个参数,第一个参数,均是一个函数,可以是匿名函数,也可以是普通的函数,第二个参数是一个可迭代的序列(列表
    或元组)

  • map函数的第一个参数是函数,函数的参数可以是1个或者多个,而reduce只能接受2个参数。

  • map()是将传入的函数依次作用到序列的每一个元素,每个元素都是独自被函数“作用”一次 。

  • reduce()是将传人的函数作用在序列的第一个元素得到结果后,把这个结果继续与下一个元素作用(累积计算)。

map:

sum2 = map(lambda y: y ** 2, range(1, 5))
print(type(sum2))  # <class 'map'>
print(sum2)  # <map object at 0x7f809ce4c1d0>
for i in sum2:
    print(i)    # 1,4,9,16

reduce:

from functools import reduce
 
sum1 = reduce(lambda x, y: x + y, range(1, 5))
print(sum1)  # 10

码字不易~, 各位看官要是看爽了,可不可以三连走一波,点赞皆有好运!,不点赞也有哈哈哈~~~

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

让子弹飞一会儿=>

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值