在Javascript数组中动态填充前后值为零的算法

2024-03-28 21:40:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我用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个零的新数组,然后将另一个数组的值放入其中,但没有成功。你知道吗

有人能给我指出正确的方向或者有什么想法吗?非常感谢。你知道吗


Tags: 数据django方法模板动态代表数字数组
3条回答

您可以映射12个项目的空数组,检查源数组中是否存在月份号:

const padZeroes = arr => [...Array(12)].map((item,index) => arr.includes(index+1) ? index+1 : 0); console.log(padZeroes([5,6,7,8]));

您可以获取一个新数组,并用索引上的项填充它(如果找到的话),或者用零填充。你知道吗

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]));

列一张12个月的清单

true_months = [1,2,3,4,5,6,7,8,9,10,11,12](或true_months = list(range(1,13))

然后你的变量

months = [4,5,6]

用一个简单的if/else来表示

[x if x in months else 0 for x in true_months]

会回来的

[0, 0, 0, 4, 5, 6, 0, 0, 0, 0, 0, 0]

相关问题 更多 >