欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ES6数组的其他操作arr.find(),arr.findIndex(),arr.fill() ,arr.includes()等等

程序员文章站 2024-02-21 15:10:28
...

1.arr.find():查找出第一个符合条件的数组成员,并返回该成员,如果没有找到就返回undefine

        let arr = [23,40,50]
	let res = arr.find((val,index,arr)=>{
		return val >30
	})
 console.log(res) //返回:40

2.arr.findIndex() :找到的是位置,找不到返回 -1 

let arr = [23,40,50]
	let res = arr.findIndex((val,index,arr)=>{
		return val >30
	})
 console.log(res) //返回:1

3.arr.fill() 填充

接受两个参数:

arr.fill(填充的东西,开始位置,结束位置)

let arr = new Array(4)
arr.fill('默认值')
console.log(arr)//['默认值','默认值','默认值','默认值']
arr.fill('默认值',1,2)
console.log(arr)//[empty,'默认值','默认值',empty]
//标准用法arr.fill(value) 
arr.fill(value, start) 
arr.fill(value, start, end) 
//例子
[1, 2, 3].fill(4)  // [4, 4, 4]
[1, 2, 3].fill(4, 1)// [1, 4, 4]
[1, 2, 3].fill(4, 1, 2)// [1, 4, 3]

 

4.arr.includes().数组是都包含某个元素,包含返回true,不包含返回false

let arr = ['a','b','c']
let b = arr.includes('b') 
console.log(b) //true

forEach()
forEach是ES5新增的方法,有三个返回值

var arr = [6,2,5,4,2]; 
arr.forEach(function(correntvalue,index,array){ 
    // console.log(correntvalue); //correntvalue是当前项 
    // console.log(index); //index是当前项的索引
    // console.log(array); //array是调用forEach的数组 }
) 

 

第一个返回值是当前项    correntvalue

console.log(correntvalue)

ES6数组的其他操作arr.find(),arr.findIndex(),arr.fill() ,arr.includes()等等

 

第二个返回值是当前项的索引    index

console.log(index)

ES6数组的其他操作arr.find(),arr.findIndex(),arr.fill() ,arr.includes()等等

 

第三个返回值是调用forEach的数组  array

console.log(array)

ES6数组的其他操作arr.find(),arr.findIndex(),arr.fill() ,arr.includes()等等

filter

是一个常用的操作,它用于把Array的某些元素过滤掉,然后返回剩下的元素。

map()类似,Arrayfilter()也接收一个函数。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是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]

 把一个Array中的空字符串删掉,可以这么写:

var arr = ['A', '', 'B', null, undefined, 'C', '  '];
 var r = arr.filter(function (s) {
     return s && s.trim(); // 注意:IE9以下的版本没有trim()方法
 });
 r; // ['A', 'B', 'C']

可见用filter()这个高阶函数,关键在于正确实现一个“筛选”函数。

filter()接收的回调函数,其实可以有多个参数。通常我们仅使用第一个参数,表示Array的某个元素。回调函数还可以接收另外两个参数,表示元素的位置和数组本身:

var arr = ['A', 'B', 'C'];
var r = arr.filter(function (element, index, self) {
    console.log(element); // 依次打印'A', 'B', 'C'
    console.log(index); // 依次打印0, 1, 2
    console.log(self); // self就是变量arr
    return true;
});

利用filter,可以巧妙地去除Array的重复元素:

'use strict';

var
    r,
    arr = ['apple', 'strawberry', 'banana', 'pear', 'apple', 'orange', 'orange', 'strawberry'];
r = arr.filter(function (element, index, self) {
    return self.indexOf(element) === index;
});
console.log(r.toString());

运行结果:apple,strawberry,banana,pear,orange

去除重复元素依靠的是indexOf总是返回第一个元素的位置,后续的重复元素位置与indexOf返回的位置不相等,因此被filter滤掉了。 

ES6数组的其他操作arr.find(),arr.findIndex(),arr.fill() ,arr.includes()等等

map()

https://blog.csdn.net/weixin_41646716/article/details/91509295

 let arr = [1, 2, 3]
        let newArr = arr.map((item, i, arr) => {
            //item:遍历数组的每一项,i:数组当前项的下标,arr原数组
            console.log(`item---${item}, i---${i}, arr---${arr}`)
            return
        })
        console.log(newArr) //[undefined, undefined, undefined]