JS之Array常用函数

  • from|of
    功能:生成一个数组
    区别:
    from 从可遍历或类似数组(有length属性)生成(支持map)
    of 从可变参数直接生成
    注意:默认的构造单个数字参数会被认为是数组的大小
    栗子:
Array.from("foo");
// ["f", "o", "o"]
Array.from({length: 5}, (v, k) => k); 
// [0, 1, 2, 3, 4]
Array.of(7); // [7]
Array.of(1, 2, 3); // [1, 2, 3]
Array(7); // [ , , , , , , ]
Array(1, 2, 3); // [1, 2, 3]
  • map | forEach
    功能:将数组中的数据进行遍历操作
    区别:
    map 遍历并返回一个数组
    forEach 遍历一个数组
    栗子
[1,2,3].map((x)=>x*x)
// [1,4,9]
[1,2,3].forEach((x)=>console.log(x))
//1
//2
//3
  • reduce |reduceRight | join
    功能:将数组中的数据进行聚合操作
    区别:
    reduce 将数组进行遍历操作返回值根绝提供的函数决定(左到右)
    reduceRight 将数组进行遍历操作返回值根绝提供的函数决(右到左)
    join 将数组进行拼接成字符串(左到右)
    栗子
[0, 1, 2, 3, 4].reduce( (prev, curr) => prev + curr )
//10
[0, 1, 2, 3, 4].join(',')
//0, 1, 2, 3, 4]
  • concat | slice
    功能:数组之间的分合操作
    区别:
    concat 数组的拼接
    slice 数组的拆分
    栗子:
var arr1 = ["a", "b", "c"];
var arr2 = ["d", "e", "f"];
var arr3 = arr1.concat(arr2);
//[ "a", "b", "c", "d", "e", "f" ]
arr3.slice(1,3);
//['b','c']
  • fill
    功能:用指定的值来填充Array
    定义:
Array.prototype.fill(value)
Array.prototype.fill(value, start)
Array.prototype.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]
[1, 2, 3].fill(4, 1, 1); // [1, 2, 3]
[1, 2, 3].fill(4, -3, -2); // [4, 2, 3]
[1, 2, 3].fill(4, NaN, NaN); // [1, 2, 3]
Array(3).fill(4); // [4, 4, 4]
[].fill.call({ length: 3 }, 4); // {0: 4, 1: 4, 2: 4, length: 3}
  • filter
    功能:对数组执行过滤
    定义:
Array.prototype.filter(callback[, thisArg])

栗子:

[-1,0,1].filter((x)=>x>0)
//[1]
  • find | findIndex | indexOf | lastIndexOf | includes
    功能:数组的查找功能
    区别:
    find 有条件的查找某个值(出现多次取第一个)
    findIndex 有条件的查找某个值的位置
    some 有条件的查找是否包含某个值
    indexOf 查找某个特定值的位置
    lastIndexOf 反向超找某个特定值的位置
    includes 是否包含某个特定值
    备注:
    前面三个也可以做遍历操作,适当的变换使用可以简化操作
    栗子:
var arr = [12, 5, 8, 130, 44,130];
arr.find((x)=>x >= 15); // 130
arr.findIndex((x)=>x >= 15); // 3
arr.some((x)=>x >= 15) // true
arr.indexOf(12); // 0
arr.indexOf(7); // -1
arr.lastIndexOf(130);//5
arr.includes(5);//true
  • push | pop | unshift | shift | splice
    功能:对数组做增删
    区别:
    push 数组末尾添加元素
    pop 数组末尾移除元素
    unshift 数组头部添加元素
    shift 数组头部移除元素
    splice 支持增删改(其实是先做删除元素,然后添加元素)
array.splice(start)
array.splice(start, deleteCount)
array.splice(start, deleteCount, item1, item2, ...) 
依次是 [删除位置,删除个数,添加的元素]

另外:
添加操作返回的都是新数组的长度
移除操作返回的都是被移除的元素(splice操作返回数组)

  • reverse
    功能:对数组做反向
    栗子:
[1,2,3].reverse();
//[3,2,1]
  • sort
    功能: 对数组做排序 默认是按字符的Unicode编码顺序
    栗子:
[2,3,1].sort((a,b)=>a-b)
//[1,2,3]

你可能感兴趣的:(JS之Array常用函数)