我有一个数组,如下所示。当出现零时,如何将先前的值复制到数组中。
var array_numbers = [9,0,1,0,2,0,3];
var Result_array = [9,9,1,1,2,2,3];
我可以使用下面的代码过滤掉所有零,但需要复制数组中的先前值
arr.filter(Boolean)
最佳答案
这是 .map()
函数的一个很好的用途,因为每个输入都需要一个输出,即使它发生了变化。
var result_array = array_numbers.map(function(val, index, array) {
// the OR operator will move on if val is falsy... like zero
return val || array[index - 1];
});
我简化了检查,但它不能处理某些情况,例如第一个值是否为零或其他虚假值。
关于javascript - 出现零时如何复制数组中的前一个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46106799/