【JS】javascript 集合引用类型ⅠArray 数组

1. 数组的声明与初始化

1.1 使用Array构造函数

let arr1 = new Array();
let arr2 = new Array(5);    //创建大小为5的数组
let arr3 = new Array("Tom","Amy","Cindy"); //初始化

其中new操作符可以省略

let arr1 = Array();
let arr2 = Array(5);    //创建大小为5的数组
let arr3 = Array("Tom","Amy","Cindy"); //初始化

1.2 数组字面量

let colors = ["red","blue","yellow"];
let names = [];

2. Array.from()

用于将类数组结构转换为数组实例。
1. 将字符串拆分为单字符数组
2. 将map和set转换为数组
3. 对现有数组执行潜复制(复制结果与原数组===返回false)

3. Array.of()

可以把一组参数转换为数组

4. length

  1. 可以通过减小数组的length从数组的末尾删除元素。
  2. 可以通过数组的length为下标实现在数组末尾增添元素。

5. 迭代器方法

const a = ["akane","fuji","sakura"];
    //将迭代器转换为数组
    const aEntries = Array.from(a.entries());
    console.log(aEntries);  //[[0, "akane"][1, "fuji"][2, "sakura"]]
    //在循环中拆分键值对
    for (const [key, element] of a.entries()){
        console.log(key);
        console.log(element);
    }

输出:
![](https://img-blog.csdnimg.cn/20210319164220870.png

6. 复制和填充方法

6.1 copyWithin()

copywithin(m,n1,n2);
把[n1,n2]的元素赋值到索引m的位置。

必须满足:

1. n1<n2
2. n1<arr.length
3. n2<arr.length
4. n1>0, n2>0

否则忽略

6.2 fill()

一个参数a时,将数组内所有元素替换为a。
两个参数(a, n),将索引>=n的元素替换为a。
三个参数(a, n1, n2), 将索引>=n1并<n2。

当n为负数时,用数组长度length减n。
const arr = [0,0,0,0,0];
arr.fill(5); 	    //arr = [5,5,5,5,5]
arr.fill(6,3); 	    //arr = [5,5,5,6,6]
arr.fill(7, 1, 3);  //arr = [5,7,7,6,6]

//等同于arr.fill(8,4,1);
arr.fill(8,-1,-4);  //arr = [5,8,8,8,6]

7. 栈方法和队列方法

pop()

shift()

简而言之就是:
pop() 取最后一个插入的元素(栈顶元素)LIFO
shift() 取最先插入的元素 (队首元素)FIFO

8. 排序方法sort()

sort会默认调用toString方法,也就是说根据数组元素的字符串形式来排序,
无法很好地将number类型按数字大小排序。

sort方法可以接受一个比较函数。
let arr = [4,3,1,5,2];
//比较方法:
function compare(value1, value2){
	if(value1<value2){
		return -1;
	}else if(value1>value2){
		return 1;
	}else{
		return 0;
	}
}
arr.sort(compare);

还可以将比较函数写成箭头函数

arr.sort((a,b) => a<b ? -1 : a>b ? -1 : 0);

9. concat()

9.1 Symbol.isConcatSpreadable 数组打平

数组强制打平
Symbol.isConcatSpreadable = true;
数组强制不打平
Symbol.isConcatSpreadable = true;

PS:
(待代码补充)
打平:把concat参数中数组内含的套娃数组中元素都视为普通元素接在目标数组后。
不打平:套娃数组还是数组形式接入目标数组。

10. slice()

创建包含原有数组元素的数组。

arr2 = arr1.slice(n);
arr3 = arr1.slice(n1,n2);

将arr1中索引>=n的元素赋给arr2。
将arr1中索引[n1,n2)内的元素赋给arr3。

11. splice()

(待补充代码)

splice(n, num, value1, value2,val...);

n:开始位置
num:删除元素数量
value:添加元素

12. 断言函数

find(),findIndex()

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值