1.创建数组
let colors=["red","pink"];
let names= new Array("AA","BB")
2.检测是不是数组
if(colors instanceof Array){}
3.迭代器
colors.keys()
[0,1]
colors.vaules()
["red","pink"]
colors.entries()
[[0,"red"],[1,"pink"]]
4.复制与填充
ints.copyWithin(0,5) 从ints中复制索引5开始的内容,插入到索引0开始的位置,是浅复制
fill(7,1,3) 用7填充索引大于等于1且小于3的元素
如何区分深拷贝与浅拷贝,简单点来说,就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,拿人手短,如果B没变,那就是深拷贝,
https://www.jianshu.com/p/1c142ec2ca45
5.转换方法
valueOf() 返回数组本身 ???vscode尝试 无vauleOf
toString() 返回数组中每个值的等效字符串拼接而成的一个逗号分隔的**字符串**
6.栈方法
push()
pop()
7.队列方法
push() 在队尾插入
shift() 在队头删除
unshift() 在队头插入
pop() 在队尾删除
8.排序
function compare(value1, value2){
return vaule1-value2;
}
num.sort(compare); 升序
num.reverse; 反转
8.合并
colors2 = colors.concat("yellow",["black","grey"])
注意:不会改变原始数据集
合并的数组会被打平,也就是说后者会拆开合并,不是作为一个整体
若不想被打平:
let colors3 = ["black","grey"]
colors3[Symbol.isConcatSpreadable] = false
9.提取
let color4 = color.slice(1,4) 返回开始索引到结束索引-1的元素.
slice()用于创建一个包含原有数组中一个或多个元素的新数组,且不影响原始数组
10.删除插入替换splice()
删除: splice(0,2) 位置和数量
插入: splice(2,0,"red","pink") 开始位置、要删除的元素数量、要插入的元素
替换: splice(2,1,"red","pink") 在位置2删除一个元素,再插入red pink
splice() 返回被删除的元素、且colors.splice()是在原数组上操作
11.搜索方法
indexOf(4) 从前往后搜索,返回第一个元素为4的位置
lastIndexOf(4) 从后往前搜索,返回第一个(正着数是最后一个)元素为4的位置
include(4) true or false
使用全等===比较的
若有第二参数,表示从第几个开始搜
使用断言函数搜索数组
find() findIndex()均只返回第一个匹配的元素或索引
const people =[
{
name:"AA",
age:27
},
{
name:"BB",
age:29
}
];
console.log(people.find((element, index, array)=> element.age<28))
//{name:"AA", age:27}
12.迭代方法
有三个参数:数组元素、元素索引、数组本身
对数组每一项都运行传入的函数
every():如果每一项都返回true,则这个方法返回true
filter():函数返回true的项组成数组之后返回
forEach():没有返回值
map():返回由每次函数调用的结果构成的数组
some():有一项true就返回true
例:
let numbers = [1,2,3];
let res = numbers.map((item,index,array)=> item**2)
[1,4,9]
13.归并方法
reduce() reduceRight()从最后一项遍历至第一项
有四个参数: 上一项的归并值、当前项、当前项的索引和数组本身
let values = [1,2,3];
let res = values.reduce((prev, cur, index, array)=>prev+cur);
// 6 累加
let res = values.reduce(function(prev, cur, index, array){ retutn prev+cur;});