这个系列文章的几篇推文的链接在这:
第二篇 filter、includes、fill、object.assign
文章目录
前言
es6是js语言下的下一代标准,使得js语言可以用来编写复杂的大型应用程序,成为企业级的开发语言。
提示:以下是本篇文章正文内容,下面案例可供参考
一、聊聊es6中的新的方法
-
Set
-
map
-
filter
-
includes
-
fill
-
object.assign
二、set
1.set介绍
set在es6中被叫做集合,set经常被用来检查对象中是否存在某个键名,它是有序列表,它类似于数组的结构但是不能像数组一样通过下标进行取值,因为其键名和键值是同一个,相比Array来说,两者都是一个储存多值的容器,两者可以相互转换,两者部分区别在:
set | Array | |
---|---|---|
索引查找 | has (效率更高) | indexof |
删除 | delete(更加方便) | splice |
添加 | add | push、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
码字不易~, 各位看官要是看爽了,可不可以三连走一波,点赞皆有好运!,不点赞也有哈哈哈~~~