首页 > 解决方案 > 在值之前和之后用零动态填充 Javascript 数组的算法

问题描述

我使用 python/django 动态获取几个月的数据并将其传递给我的模板。在那里我使用 Javascript 来操作数据

这意味着在我的模板中我有一个 javascript 数组,每个数字代表一个月,如下所示:

months = [1,2,3,4]

或者:

months = [4,5,6]

或者:

months = [6,7,8]

根据上面的数组,我想用零填充缺失的位置。缺少位置意味着数组末尾的长度应为 12。每个月都应该在准确的位置。例如:

months = [1,2,3,4,0,0,0,0,0,0,0,0]

或者

months = [0,0,0,4,5,6,0,0,0,0,0,0]

或者

months = [0,0,0,0,0,6,7,8,0,0,0,0]

我尝试了很多东西。Splicing似乎是一个好方法,但没有按预期工作。我无法使用Array.fill. 我还尝试创建一个包含 12 个零的新数组,然后将另一个数组的值推入其中,但它不起作用。

有人可以指出我正确的方向或有一个想法吗?非常感谢。

标签: javascriptpythonarraysdjango

解决方案


如果找到或为零,您可以获取一个新数组并用索引上的项目填充它。

const fill = m => Array.from({ length: 12 }, (_, i) => +m.includes(i + 1) && i + 1);

console.log(...fill([1, 2, 3, 4]));
console.log(...fill([4, 5, 6]));
console.log(...fill([6, 7, 8]));


推荐阅读