数组常用方法

扩展运算符

let arr = [1, 2, 3];
let arr2 = [...arr];  //等同于 let arr2 = Array.from(arr);

let [a, b, c] = [1, 2, 3];   //a=1, b=2, c=3

let [ , , third] = ["foo", "bar", "baz"];  //third="baz"

let [head, ...tail] = [1, 2, 3, 4];  //head=1, tail=234

let [x, y, ...z] = ['a'];  //x=a, y=undefined, z=[], 如果解构不成功,变量的值就等于undefined

let [x, y = 'b'] = ['a']; // x='a', y='b',解构赋值允许指定默

// 解构赋值超强
const {
    form: { validateFields }
} = this;
    validateFields((err, values) => {
        if (!err) {
          // eslint-disable-next-line no-console
          console.log("Received values of form: ", values);    
        }
    });

Array.from:把类数组(获取一组元素、arguments...)对象转成数组,个人观点:具备length这个东西都可以使用Array.from()转数组

let aLi = document.querySelectorAll('ul li');
let arrLi = Array.from(aLi);  //等同于let arrLi = [].slice.call(aLi);  ES5方法

function show(){
    let args = Array.from(arguments);
    console.log(args)      //[1,2,3,4,5]
}
show(1,2,3,4,5)

let str = 'strive';
let arr = Array.from(str);   //等同于let arr = str.split('');
console.log(arr);   //[s,t,r,i,v,e]

let json = {
    0:'apple',
    1:'banana',
    2:'orange',
    length:3
}
let arr = Array.from(json);
console.log(arr); //['apple','banana','orange'],json对象必须有length,否则为[]

Array.of:把一组值,转成数组(没用过)

let arr = Array.of('apple','banana','orange');
console.log(arr); //['apple','banana','orange']

Array.find:查找,找出第一个符合条件的数组成员,如果没找到返回undefined

let arr = [23,900,101,80,100];
let res = arr.find((val, index, arr) => {
    return val>100;
})
console.log(res);   //返回数字900

Array.findIndex:找的是位置,没找到返回-1

let arr = [23,900,101,80,100];
let res = arr.findIndex((val, index, arr) => {
    return val>100;
})
console.log(res);   //返回数字1

Array.fill:Array.fill(填充的东西,开始位置,结束位置)(没用过)

let arr = new Array(10);
arr.fill('默认值');
console.log(arr); //['默认值'......]10个默认值
arr.fill('默认值',1,3);   //1起始位置,3结束位置
console.log(arr);  //下标为1和下标为2的是默认值,其他为空

Array.includes:返回布尔值true/false,跟indexOf类似

let arr = ['apple','banana','orange'];
let b = arr.includes('banana');
console.log(b);   //返回布尔值true
原文地址:https://www.cnblogs.com/lanshu123/p/10580795.html