javascript - 出现零时如何复制数组中的前一个数字

标签 javascript

我有一个数组,如下所示。当出现零时,如何将先前的值复制到数组中。

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/

相关文章:

javascript - jQuery API 无法与 JavaScript 一起使用

javascript - 仅允许使用复选框网格选择矩形

javascript - 关闭确认弹出窗口后出现模态对话框(Selenium::WebDriver::Error::UnhandledAlertError)

javascript - 通过AJAX/PHP设置变量提交URL,无需刷新页面,加载变量

javascript - 如何使用 jQuery 过滤表格行

javascript - javascript 中的变量行为,使用 += 运算符时旧值不会被覆盖

javascript - Angular.js 只监视特定的对象属性

javascript - 在 vscode 扩展中使用来自 vanilla javascript 的 Typescript 泛型

javascript - 动态模板在 ng-repeat 上添加空值

javascript - 使用 JS API 安排 Facebook 帖子