JS 初始化一个二维数组

本文探讨了JavaScript中初始化二维数组时遇到的问题,解释了为何在某些情况下使用`new Array(n).fill().map(() => new Array(m).fill())`会更稳定,并介绍了JS中的类型转换规则,特别是01与truefalse之间的比较。同时,讲解了如何在JS中正确获取一个数的十位,避免因浮点数处理带来的困扰。
摘要由CSDN通过智能技术生成

JS初始化一个二维数组

初始化一个二维数组

定义二维数组可以通过定义数组的数组实现

var arr = new Array(n);
for(var i = 0;i < n;i++){
    arr[i] = new Array(m);
}

但是这种方法我在使用中会报错:cannot read property ‘0’ of undefined,即使在循环中将每一个值都初始化,仍然在m和n不相等时会出现上述错误(有时大于时错误,有时小于时错误,但一定会出错),推测是定义时没将数组中所有的值初始化完成,导致取到的位置没有数据(并不是undefined)。

所以改为使用这种方法:

const arr = new Array(m).fill().map(() => new Array(n).fill());

定义数组,并将所有值都初始化为0(fill()中没有值则为默认值0)

fill()用法:

fill(value)
fill(value,start)
fill(value,start,end)

其他内容随笔

JS中的0 1与true false

if(1 == true) //结果是true

if(1 === true) //结果是false
    
if(a = true){} //赋值语句和后面的内容都能执行

JS中布尔型仅有true和false,与数值不同,true false与0 1不相等

但JS热衷于在不同数据类型之间进行转换,所以即使数字不是布尔型,仍可以使用如:if(1){} 与 if(true){}。同时也要提到=的区别,前者比较时会先进行强制类型转换再比较,而后者不进行类型转换直接比较。同理于两个不等。所以==只比较值是否相等,===不止要求值相等,数据类型也要相同。

JS中求一个数的十位

由于js统一使用的双精度浮点数,求一个数的十位时不能直接除,如1/10 结果是0.1,因为不是其他语言定义的int型 但是可以使用parseInt进行转换,如parseInt(1/10) 结果是0。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值