[英]initialize all the values in a javascript array to 0 without iteration
有没有办法使javascript数组将所有值初始化为0,而无需迭代,如下所示
var array = [1, 2, 3, 4, 5];
至
[0, 0, 0, 0, 0]
您可以在兼容的浏览器中使用Array.prototype.fill()
:
var array = [1, 2, 3, 4, 5];
array.fill(0); // [0, 0, 0, 0, 0]
参考文献:
Array.apply(null, new Array(5)).map(Number.prototype.valueOf, 0))
有用的文章初始化数组
有点棘手。 但是有效
var array = [1, 2, 3, 4, 5];
array = JSON.parse(JSON.stringify(array).replace(/(\d+)/g,0)); // Returns [0,0,0,0,0]
我想如果您使用JSON.parse()来构建空容器,而使用splice()来对现有数组进行变异,而不是仅仅使一个新的数组充满零,那么您就不需要评估了:
var r=[1, 2, 3, 4, 5];
[].splice.apply(r,
[0, r.length].concat(
JSON.parse("[0"+new Array(r.length).join(",0")+"]")
));
alert(r); // shows: "0,0,0,0,0"
基于map()/ fill()的答案将不会影响期望的orig数组,但是这些解决方案可以像上面的答案一样使用拼接来这样做,唯一的区别是一个人如何构建零填充数组。
编辑:对Gilsha表示敬意,当您提醒我JSON就足够了时,我正在研究基于评估的答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.