# 数组方法

# 1. 定义数组

# 对象方法

var arr = new Array();

new 可省略

# 数组字面量

var arr = [1, 2, 3];

arr.length = 1;

给数组末尾添加新的值

# 2. 检测数组

# instanceOf

arr instanceOf array

# Array.isArray

# 3. 数组转换

toString()

join()

接受分隔符作为参数,返回字符串

# 4. 数组方法

# 栈方法

后进先出

push() 后进

pop() 后出

# 队列方法

先进先出

shift() 先出

push() 后进

# 反向队列

unshift() 先进

pop() 后出

# 栈和队列

添加 删除 位置
push pop 数组末尾
unshift shift 数组前端
任意个 1个
返回数组长度 返回删除项

# 重排序

reverse()

反转

sort()

可接受compare函数作为参数

function compare(value1, value2) {
    return value2 - value1;
}

# 操作方法

  • reverse()

    • array.reverse()倒序
  • sort()

    • array.sort(compare函数)
    • array.sort() 根据字符串排序
  • concat()

    • array.concat()复制
    • array.concat("2"添加项, [1,2,3]添加数组)
    • 返回添加/复制后的数组
  • slice() 切片

    • array.slice(1起始位置,4结束位置不包括/可省略)
  • splice() 插入替换

    • array.splice(1起始位置, 1删除项数, new插入项可省略)

# 迭代

  • every()
    • array.every()
    • 每项为true返回
  • some()
    • array.some()
    • 有一项为true返回
var numbers = [1,2,3,4,5,4,3,2,1];

var everyResult = numbers.every(function(item, index, array){
    return (item > 2);
    });

everyResult;
// false
var someResult = numbers.some(function(item, index, array) {
    return (item > 2);
    });

someResult;
// true
  • filter()
    • array.filter()
    • 过滤true
var numbers = [1,2,3,4,5,4,3,2,1];

var filterResult = numbers.filter(function(item, index, array) {
    return (item > 2);
    });

filterResult;
// [ 3, 4, 5, 4, 3 ]
  • map()
    • array.map(function)
    • 返回函数调用后的结果数组
var numbers = [1,2,3,4,5,4,3,2,1];

var mapResult = numbers.map(function(item, index, array) {
    return item * 2;
    });

mapResult;
// [ 2, 4, 6, 8, 10, 8, 6, 4, 2 ]
  • forEach()
    • 类似for循环
    • array.forEach(function)
    • 对每项使用函数

# 位置

  • array.indexOf()
    • array.indexOf(1数组项, 4起始位置可省略)
    • 从前往后
  • array.lastIndexOf()
    • array.lastIndexOf(1数组项, 4起始位置可省略)
    • 从后往前

# 归并

  • reduce()
    • array.reduce(function)
var values = [1,2,3,4,5];


var sum = values.reduce(function(prev, cur, index, array) {
    return prev + cur;
    });

sum;
// 15
  • reduceRight()
    • 从右开始
Last Updated: 6/19/2020, 10:43:23 PM