如何使用一个值 Javascript 更改一系列数组?

Tim*_*çek 0 javascript arrays

我有一个像下面这样的数组让我们说

var myArray = ["1", "", "", "2","3","","","8"];
Run Code Online (Sandbox Code Playgroud)

我想用以前的非空值填充每个“”值

根据那个期望应该像下面

var myArray = ["1", "2", "2", "2","3","8","8","8"];
Run Code Online (Sandbox Code Playgroud)

这是我尝试过但没有用的

var myArray = ["1", "", "", "2","3","","","8"];
Run Code Online (Sandbox Code Playgroud)

Nin*_*olz 6

您可以映射新值并找到缺少的以下值。

var array = ["1", "", "", "2", "3", "", "", "8"],
    result = array.map((v, i, a) => v || a.find((w, j) => j > i && w));

console.log(result);
Run Code Online (Sandbox Code Playgroud)

具有相同数组的解决方案,通过从末尾循环并存储最后一个值。

var array = ["1", "", "", "2", "3", "", "", "8"],
    i = array.length,
    value;

while (i--) {
    if (array[i]) value = array[i];
    else array[i] = value;
}

console.log(array);
Run Code Online (Sandbox Code Playgroud)