Array参考文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array
- 用来检查一个对象是否是数组
// 下面的都返回true
Array.isArray([]);
Array.isArray([1]);
Array.isArray(new Array());
Array.isArray(new Array("a", "b", "c", "d"));
Array.isArray(new Array(3));
//Array.prototype 本身也是一个array
Array.isArray(Array.prototype);
// 下面的都返回false
Array.isArray();
Array.isArray({});
Array.isArray(null);
Array.isArray(undefined);
Array.isArray(17);
Array.isArray("Array");
Array.isArray(true);
Array.isArray(false);
Array.isArray(new Uint8Array(32));
at()可以接收负索引作为参数
用来连接两个或多个数组
非破坏性方法,不会影响原数组,而是返回一个新的数组
const arr = ["孙悟空", "猪八戒", "沙和尚", "唐僧"]
const arr2 = ["白骨精", "蜘蛛精", "玉兔精"]
let result1 = arr.concat(arr2) // 连接一个数组
let result2 = arr.concat(arr2, ["牛魔王","铁扇公主"]) // 连接两个数组
console.log(result1)
console.log(result2)
console.log(arr)
console.log(arr2)
看结果可以发现原素组并未被改变,并且按照传入的顺序拼接到一起

let arr = ["孙悟空", "猪八戒", "沙和尚", "唐僧", "沙和尚"]
console.log(arr.indexOf("沙和尚"))
console.log(arr.indexOf("沙和尚", 3))

获取元素在数组中最后一次出现的位置
返回值:
let arr = ["孙悟空", "猪八戒", "沙和尚", "唐僧", "沙和尚"]
console.log(arr.lastIndexOf("沙和尚"))

arr = ["孙悟空", "猪八戒", "沙和尚", "唐僧", "沙和尚"]
console.log(arr.join())// 默认使用 , 分割
console.log(arr.join("@-@"))
console.log(arr.join(" "))

用来截取数组(非破坏性方法)
参数(前开后闭):
如果将两个参数全都省略,则可以对数组进行浅拷贝(浅复制)
arr = ["孙悟空", "猪八戒", "沙和尚", "唐僧", "沙和尚"]
console.log(arr.slice(0, 2))
console.log(arr.slice(1, 3))
console.log(arr.slice(1, -1))
console.log(arr.slice())

向数组的末尾添加一个或多个元素,并返回新的长度
arr = ["孙悟空", "猪八戒", "沙和尚"]
console.log(arr.push("bb"))
console.log(arr)

删除并返回数组的最后一个元素
arr = ["孙悟空", "猪八戒", "沙和尚"]
console.log(arr.pop())
console.log(arr)

向数组的开头添加一个或多个元素,并返回新的长度
arr = ["孙悟空", "猪八戒", "沙和尚"]
console.log(arr.unshift("bb"))
console.log(arr)

删除并返回数组的第一个元素
arr = ["孙悟空", "猪八戒", "沙和尚"]
console.log(arr.shift())
console.log(arr)

可以删除、插入、替换数组中的元素
参数:
返回值:
删除
arr = ["孙悟空", "猪八戒", "沙和尚"]
console.log(arr.splice(1, 2))
console.log(arr)

插入
插入的话就是删除0个,然后第一个参数指定开始位置,后面的参数指定要插入的元素
arr = ["孙悟空", "猪八戒", "沙和尚"]
console.log(arr.splice(1, 0, "猪", "猴"))
console.log(arr)

修改
修改的话需要将第二个参数设置成和要插入的参数一样长即可
arr = ["孙悟空", "猪八戒", "沙和尚"]
console.log(arr.splice(1, 2, "猪", "猴"))
console.log(arr)

反转数组,返回翻转后的数组
arr = ["孙悟空", "猪八戒", "沙和尚"]
console.log(arr.reverse())
console.log(arr)

sort用来对数组进行排序(会对改变原数组)
sort默认会将数组升序排列
注意:sort默认会按照Unicode编码进行排序,所以如果直接通过sort对数字进行排序可能会得到一个不正确的结果
let arr = [2, 3, 1, 9, 0, 4, 5, 7, 8, 6, 10]
arr.sort()

参数:
let arr = [2, 3, 1, 9, 0, 4, 5, 7, 8, 6, 10]
arr.sort((a, b) => a - b)
arr.sort((a, b) => b - a)
升序排列

降序排列

arr = ["孙悟空", "猪八戒", "沙和尚", "唐僧"]
arr.forEach((element, index, array) => {
console.log(element, index, array)
})

arr = [1, 2, 3, 4, 5, 6, 7, 8]
arr.filter((ele) => ele > 5)

不做任何过滤
arr = [1, 2, 3, 4, 5, 6, 7, 8]
arr.filter((ele) => true)

https://www.bilibili.com/video/BV1mG411h7aD?t=1349.8&p=111
arr = [1, 2, 3, 4, 5, 6, 7, 8]
arr.map((ele) => ele * 2)

https://www.bilibili.com/video/BV1mG411h7aD?t=1750.5&p=111
arr = [1, 2, 3, 4, 5, 6, 7, 8]
result = arr.reduce((a, b) => {
console.log(a, b)
return a + b
})
