javascript - 在值之前和之后用零动态填充 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 个零的新数组,然后将另一个数组的值推入其中,但它不起作用。
有人可以指出我正确的方向或有一个想法吗?非常感谢。
解决方案
如果找到或为零,您可以获取一个新数组并用索引上的项目填充它。
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]));
推荐阅读
- arduino - Arduino批量编程
- php - 如何将 laravel 数据库查询放入索引 php 数组中?
- elasticsearch - Elasticsearch:在布尔字段上搜索
- javascript - 我们可以在一个复选框上触发两个事件吗?单击一个来自 javascript,另一个来自代码隐藏
- javascript - 将删除 css 类添加到元素时的 Jquery javascript 最佳实践
- ios - 在 iPhone 上查看时,Div 不会拉伸到 100% 宽度
- hadoop - 分析 hadoop 中的当前和操作设置
- android - Android Camera2 缓冲区队列在开始新活动时已被放弃
- android - 处理重叠按钮上的触摸事件
- dart - 匿名函数的返回类型