JS 创建并初始化数组的各种方法与坑

刷力扣买卖股票系列问题时在创建与初始化数组上遇到了很多自己不知道的知识点,写篇博客记录一下。

一;创建数组

1.快速创建并初始化二维数组1

var arr1 = new Array(3).fill([0, 0]);

// 含义:创建一个三个坑位的数组,每个坑位又初始化为一个二维数组

// 注意:fill方法如果填充的是复杂数据类型的数据(对象和数组)那么所有被填充项引用的都是同一个对象而不是对象的拷贝,也就是说改变一个另外的都会跟着变

// 解决方法:

// 想要修改数组的时候要单独的替换整个数组

2.快速创建并初始化二维数组2

var arr2 = Array.from({length: 3}, () => new Array(2));

var arr2 = Array.from(new Array(3),()=>new Array(2));

需要用双重 for 循环进行初始化

3.快速创建并初始化二维数组3

var arr3 = [];
for(let i = 0;i<2;i++) {
	arr3[i] = [];
}

4.利用数组的map方法快速生成二维数组。

let dp = new Array(2).fill(0).map(()=>{//这里不能将fill(0)删除
    return Array(5)
});

注意:在这个方法中,不能将.fill(0)删除,因为map方法给每个元素都按顺序调用的 callback 函数只会在有值的索引上被调用;那些从来没被赋过值或者使用 delete 删除的索引不会被调用。可以选择填充赋值其他数而不一定是是0。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值