我用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个零的新数组,然后将另一个数组的值放入其中,但没有成功。你知道吗
有人能给我指出正确的方向或者有什么想法吗?非常感谢。你知道吗
您可以映射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]
相关问题 更多 >
编程相关推荐