这个系列文章的几篇推文的链接在这:
第二篇 filter、includes、fill、object.assign
前言
es6是js语言下的下一代标准,使得js语言可以用来编写复杂的大型应用程序,成为企业级的开发语言。
提示:以下是本篇文章正文内容,下面案例可供参考
一、聊聊es6中的新的方法
- Set
- map
- filter
- includes
- fill
- object.assign
- promise
二、filter
它用于把Array的某些元素过滤掉,然后返回剩下的元素。和map()类似,Array的filter也接收一个函数,和map()不同的是,fillter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。
例如,在Array中删掉偶数,只保留奇数可以这样写:
var arr=[1, 2, 4, 5, 6, 9, 10, 15];
var r=arr.filter(function(x){
return x&2!==0;
});
r;//[1,5,9,15]
三、includes
includes()方法,在字符串中方使用时,相当于indexof(),查询成功返回true,失败返回false。
代码如下:
[1,2,3].includes(1);//true
[1,2,3].includes(4);//false
四、fill
fill的作用是使用指定的元素填充数组
- array.fill(value, [start_index], [end_index]);
- value是要填充到数组中的静态值。
- start_index是一个可选参数,它指定填充数组的起始索引,其默认值为0。
- end_index也是一个可选参数,它指定填充数组的结束索引,其默认值为array.length
const arr=[1,2,3,4,5,6,7,8,9,10]
arr.fill(7,2,5)
console.log(arr)
//1,2,7,7,7,8,9,10,11
五、object.assign
object.assign是主要用来合并多个javascript对象。它的接口可以接收多个参数,第一个参数是目标对象,后面的都是源对象,assign就多个源对象的属性和方法都合并到了目标对象上面,如果在这个过程中出现同名的属性或者方法,后合并的属性会覆盖之前的属性方法。
var target={a:1};//目标对象
var source1={b:2};//源对象1
var source2={c:3};//源对象2
var source3={c:4};//源对象3
object.assign(target,source1,source2,source3)
//{a:1,b:2,c:3}
object.assign
的一个特殊性质:
object.assign
是使用的浅拷贝,如果说拷贝过来的属性的值是对象等复合属性,那么只能拷贝一个过来引用。如下:
const obj1={a:{b:1}}
const obj2=object.assign{{},obj1);
obj1.a.b=2;
obj2.a.b//2
object.assgin
的常见用途:
• 为对象添加属性
• 为对象添加方法
• 克隆对象
• 为属性指定默认值
码字不易~, 各位看官要是看爽了,可不可以三连走一波,点赞皆有好运!,不点赞也有哈哈哈~~~