初始化数组array fill的踩坑经历

#近期业务工作繁重,偷懒了一点点#

今天刷了一个leetcode题,正好发现了一点可以记录的,查漏补缺嘛,可以看我另一篇最近做题的题集分享……ps.《leetcode 练习集锦(持续更新)》

--有效的数独--

这题题目不难理解,所以先顺着题意,做了一遍,再后续优化

关键点在于

  1. 数字 1-9 在每一行只能出现一次。
  2. 数字 1-9 在每一列只能出现一次。
  3. 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次

我将每种情况中数据再加工存数组里,涉及二维数组的创建,直接上来就->

new Array(9).fill([])

运行结果不对,我又捋了一遍思路,没看出端倪

遂只能用最普通的方法,在for循环中console.log看数据如何处理的,最后一看,怎么我每一行的操作影响的都是所有行的数据,也就是我出现了九行一模一样的数据,当然,敏感的人就会想到了每一行指向的应该是同一处,也就是我们常说的引用数据类型

解决方案

**粗暴简单小笨拙**

[[], [], [], [], [], [], [], [], []]

哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈,interesting~

**进化版**

let arr = [];
for (let i = 0; i < 9; i++) {
    arr.push([]);
}

其实,也不高大上hhh

总结

不管黑猫白猫,抓到老鼠就是好猫

设计 代码简洁 很重要,但又不是处处要高端大气上档次

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值