我有一个像下面这样的数组让我们说
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)
您可以映射新值并找到缺少的以下值。
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)