Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无需迭代即可将javascript数组中的所有值初始化为0_Javascript_Arrays - Fatal编程技术网

无需迭代即可将javascript数组中的所有值初始化为0

无需迭代即可将javascript数组中的所有值初始化为0,javascript,arrays,Javascript,Arrays,有没有办法让javascript数组在不迭代的情况下将所有值初始化为0,如下所示 var array = [1, 2, 3, 4, 5]; 到 有用的文章 有用文章您可以在兼容浏览器中使用Array.prototype.fill: 参考资料: . 您可以在兼容浏览器中使用Array.prototype.fill: 参考资料: . 这有点棘手。但它是有效的 var array = [1, 2, 3, 4, 5]; array = JSON.parse(JSON.stringify(array)

有没有办法让javascript数组在不迭代的情况下将所有值初始化为0,如下所示

var array = [1, 2, 3, 4, 5];

有用的文章


有用文章

您可以在兼容浏览器中使用Array.prototype.fill:

参考资料:

.
您可以在兼容浏览器中使用Array.prototype.fill:

参考资料:

.
这有点棘手。但它是有效的

var array = [1, 2, 3, 4, 5];
array  = JSON.parse(JSON.stringify(array).replace(/(\d+)/g,0)); // Returns [0,0,0,0,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来构建空数组和拼接来变异现有数组,而不是仅仅使新数组充满零,那么我猜您不需要eval:

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"
基于映射/填充的答案不会影响所需的orig阵列,但这些解决方案可以像上面的答案一样使用拼接来实现这一点,唯一的区别是如何构建零填充阵列


编辑:感谢Gilsha,当你提醒我JSON就足够了的时候,我正在做一个基于eval的答案。

如果你使用JSON.parse来构建空数组和拼接来改变现有数组,而不是仅仅创建一个充满零的新数组,我想你不需要eval:

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"
基于映射/填充的答案不会影响所需的orig阵列,但这些解决方案可以像上面的答案一样使用拼接来实现这一点,唯一的区别是如何构建零填充阵列


编辑:Gilsha太好了,当你提醒我JSON就足够了时,我正在做一个基于eval的答案。

Ah,那么你在寻找一个神奇的函数,它甚至不需要在内部循环中迭代?我…不认为这是存在的。未捕获类型错误:未定义不是一个函数@Alex:这就是为什么我澄清它是在兼容浏览器中的,尽管我当时只有机会在Chrome中进行测试,然后工作花了我一点时间。谢谢你的回答,因为我不能使用它,因为浏览器兼容度很高,所以你在寻找一个神奇的函数,它甚至不需要在内部遍历循环?我…不认为这是存在的。getting Uncaught TypeError:undefined不是一个函数@Alex:这就是为什么我澄清它是在兼容浏览器中的,尽管我当时只有机会在Chrome中进行测试,然后工作花了我一段时间。谢谢你的回答,因为我不能使用它是因为浏览器兼容性问题答案是anks…实际上我们遵循的是干净的代码策略…所以我不能使用这个东西答案是hanks…实际上我们遵循的是干净的代码策略…所以我不能使用这个东西如果这个答案解决了你的问题,你应该批准它,也许编辑问题可以更好地设置答案。如果此答案解决了您的问题,您应该批准它,也许编辑问题可以更好地设置答案。
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"