python创建全零数组_创建全0数组(Zero filled array creation)

在编程中创建全零数组看似简单,但在JavaScript中使用`new Array()`创建的数组无法直接通过`map()`函数初始化每个元素为0。这是因为这种创建方式得到的数组只有长度,没有实际元素。解决方案包括使用`Array.apply()`、`join()`和`split()`,或者`Array.from()`,`fill()`等方法。性能测试表明,最简单的`for`循环赋值方式在创建全零数组时效率最高。
摘要由CSDN通过智能技术生成

问题

乍看之下,创建全0数组应该是一件不能再简单的事情了:

var arr = [0,0,0,0,0,0];

然而有时候需要创建出长度比较长的全0数组(比如做桶排序时就需要),这种字面声明可能就不太适合,因为不可能手打出几万个0。所以今天创建全0数组的时候,我用了以下方法:

var arr = new Array(10);

//这里等同于

//var arr = [];arr.length = 10;

arr = arr.map(function(value,index,array){

return value = 0;

});

然后对于arr里的元素都进行了++处理:

arr[i]++;

最后console.log(arr)的时候却发现,结果是:

[NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN]

当时还以为自己map函数写错了,于是想了一个方法来验证:

var arr = [1,2,3,4,5,6,7,8,9,10];

arr = arr.map(function(value,index,array){

return value = 0;

});

console.log(arr);

结果得到了[0,0,0,0,0,0,0,0,0,0];

也就是说,使用new方法声明的数组,没法用map方法初始化每一个值

解决

当你用new关键字加上某个长度来创建数组的时候&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值