ES6语法快速上手四

数组新增方法

1. arr.find

(callback[,thisArag])查找数组中满足要求的第一个元素的值。

参数:callback在数组每一项上执行的函数,接收3个参数:

element当前遍历到的元素。index[可选]当前遍历到的索引。array[可选]数组本身。

可选参数:thisArg 执行回调时用作this的对象。

返回值:数组中第一个满足所提供测试函数的元素的值,否则返回Undefined。

{

let arr=[1,2,3,4];

let val=arr.find((item,index)=>{

if(item>1){

return true;

}

});

console.log(val);

}

2. arr.findIndex(callback[,thisArg])查找数组中满足要求的第一个元素的值得索引。

参数:

callback针对数组中的每个元素,都会执行该回调函数,执行时会自动传入下面三个参数:

element:当前元素。index:当前元素的索引。array:执行callback时作为this对象的值。

返回值:满足要求的值的索引。

let arr=[1,2,3,4];

let index=arr.findIndex(item=>item>=3);

console.log(index);

3. arr.flat([depth])扁平化多维数组

可选参数:

depth指定要提取嵌套数组的结构深度,默认值为1.

返回值:一个包含 将数组与子数组中所有元素的新数组。

let arr=[

["小明","18"],

["小hong","16"],

[

[1,[3,4],[5,6],[[7],[8]]]

]

];

console.log(arr.flat(Infinity));

4.arr.flatMap(function callback(currentValue[,index[,array]]){

//返回新数组的元素

}[,thisArg]方法首先使用映射函数映射每个元素,然后将结果压缩成一个新数组。它与map和深度值1的flat几乎相同,但flatMap通常在合并成一种方法的效率稍微高一些

参数:callabck可以生成一个新数组中的元素的函数,可以传入三个参数。

currentValue当前正在数组中处理的元素。index可选的,数组中正在处理的当前元素的索引。array可选的,被调用的map数组。

可选参数:thisArg执行callback函数时使用的this值。

返回值:一个包含将数组与子数组中所有元素的新数组。

let arr=[

["小明","18"],

["小刚","18"]

];

let newArr=arr.flatMap((item)=>{

item=item.filter((item,index)=>{

return index==0;

});

return item;

})

console.log(newArr);

5.arr.fill(value[,start[,end]]);用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。不包括终止索引。

参数:用来填充数组元素的值。

可选参数:start起始索引,默认值为0;end终止索引,默认值为arr.length

let arr=[0,1,2,3,4];

arr.fill("a",1,4);

arr.fill("a",1,20);

console.log(arr);

6.arr.includes(valueToFind[,fromIndex])判断数组中是否包含一个指定的值。

参数:valueToFind需要查找的值。

可选参数:从fromIndex处开始向后查找。

返回值:true代表数组中包含valueToFind,false代表数组中不包含fromIndex.

let arr=["a","b","c","d","e"];

console.log(arr.includes("c"); console.log(arr.includes("c",3));


分享到:


相關文章: